'2014/02'에 해당되는 글 2건

  1. 2014.02.13 :: 정사각형 ImageView
  2. 2014.02.04 :: [SQLite] ROWID에 관하여
컴퓨터과학/Android 2014.02.13 19:20

간혹 ImageView가 정사각형으로 나왔으면 하는 경우가 있다.

단순히 정사각형이라면 layout_width와 layout_height를 같은 수치로 넣어주면 되지만...

그런 경우 동적으로 사이즈가 늘어나진 않아 불편하다.

아래 사이트에 답이 있다.


http://android-layouts.com/category/tags/square


위 내용을 참고하여 간단히 정리하면 ImageView를 상속받는 클래스를 생성 후 onMeasure() 메서드를 오버라이딩하고 width와 height를 동일하게 맞춰주면 된다. (가로 세로 둘 중에 짧은 길이로 통일)


protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

 
	    //Get canvas width and height
	    int w = MeasureSpec.getSize(widthMeasureSpec);
	    int h = MeasureSpec.getSize(heightMeasureSpec);
 
	    w = Math.min(w, h);
	    h = w;
 
	    setMeasuredDimension(w, h);
	}


이 방법은 ImageView 뿐만 아니라 대부분의 컨트롤에 적용 가능하다.


<com.lovejb.example.Views.SquareImageView android:layout_width="match_parent" android:layout_height="match_parent"

 />


xml layout에서는 위와 같은 식으로 사용하면 된다. 

posted by 연식킴
컴퓨터과학/Android 2014.02.04 20:52

안드로이드에서 SQLiteDatabase 객체의 insert()메서드는 long형 값을 반환한다.

그 메서드 주석에 보면 해당 값을 row ID라고 표현하는데, 실제로 어떤 값인지 자세히 설명되어 있지 않다.


해당 값은 실제 SQLite에서 정의하는 ROWID와 동일한데 간단히 말하면 INTEGER형으로 선언된 PRIMARY KEY는 내부적으로 ROWID를 앨리어스 하게 된다. 


즉, SQLite에서 데이터 INSERT시 INTEGER PRIMARY KEY AUTOINCREMENT로 선언된 필드가 있다면 자동으로 증가된 ROWID값이 반환된다.


자세한 내용은 아래 링크를 참조하시라.

http://www.sqlite.org/autoinc.html


posted by 연식킴