반응형

이번 포스팅은  GridLayout 특징에 대하여 알아보도록 하겠습니다.


1. 바둑판과 같은 행과 열로 이루어진 격자 모양으로 위젯을 배치할 수 있도록 하는 Layout


2. API 14부터 제공


3. API 14 미만 버전에서는 gridlayout-v7(API 7 이상부터 사용 가능) 이라는 Support  레이아웃을 통해 하위 버전에서도 사용 가능


4. GridLayout 내에 위젯을 배치하면 orientation에 의해 자동으로 가로 또는 세로로 우선으로 배치되고

    가로 또는 세로의 개수는 columnCount나 rowCount로 설정할 수 있다. (기본orientation 은 가로)


5. 위젯은 layout_column과 layout_row로 원하는 위치를 지정할 수 있고, layout_gravity로 정렬 방식을 지정


6. 위젯은 layout_columnSpan과 layout_rawSpan으로 Cell간 합치기를 가능


7. API 21부터는 layout_columnWeight와 layout_rowWeight를 제공


   (weight를 지정하려면 모든 셀에 지정)


8. GridLayout 속성


   # useDefaultMargin - 위젯간 default 여백(4dp) 설정 여부로 설정하지 않으면 0dp

   # alignmentMode - GridLayout 내에서의 위젯의 정렬 기준(alignBounds, alignMargins)

반응형

'Development > Android' 카테고리의 다른 글

[Android] Lollipop (Android OS 5.0) 특징  (0) 2016.04.22
[Android] Android의 구조  (0) 2016.04.22
[Android] dp를 px값으로 변환  (0) 2016.04.14
[Android] View의 터치영역 넓히기  (0) 2016.03.25
[Android] AsyncTask 중지하기  (0) 2016.03.23
반응형

이번 포스팅은 Android에서 화면의 Dp 값을 Pixel로 변환하는 방법에 대하여 알아보도록 하겠습니다. 

Resource r = getResource();

int px = (int) typeValue.applyDimension(TypeValue.COMPLEX_UNIT_DIP, 200, r.getDisplayMetrics());


myEditText.setWidth(px);

반응형

'Development > Android' 카테고리의 다른 글

[Android] Android의 구조  (0) 2016.04.22
[Android] GridLayout  (0) 2016.04.18
[Android] View의 터치영역 넓히기  (0) 2016.03.25
[Android] AsyncTask 중지하기  (0) 2016.03.23
[Android] Intent로 객체 전달하기  (0) 2016.02.12
반응형

이번 포스팅은 View 구성 시 터치 영역을 넓히는 방법에 대하여 알아보도록 하겠습니다.


Layout 구조는 아래와 같습니다.

전체 위젯을 감싸고 있는 test_parent layout 안에 test_view가 들어있는 상황입니다.


위젯의 터치영역이 너무 작아 Layout의 크기만큼 늘리고 싶을 때 아래와같이 touchDelegate를 셋팅해주면 됩니다.

View mTestLayout = rootView.findViewById(R.id.test_parent_layout); ViewGroup.LayoutParams params = mTestLayout.getLayoutParams(); mTestLayout.setTouchDelegate(

new TouchDelegate(

new Rect(0, 0, params.width, params.height),

rootView.findViewById(R.id.test_view)

)

);

위와 같이 구현을 하면 test_parent_layout 영역을 눌러도 test_view의 클릭 리스너가 호출이 됩니다.


View가 MATCH_PARENT이거나 WRAP_CONTENT일 경우, Size가 정확하게 선언되어 있지 않으므로

아래와 같이 OnGlobalLayoutListener에서 처리하는 것도 하나의 방법입니다.

rootView.findViewById(R.id.test_parent_layout).getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() {     @Override     public void onGlobalLayout() {     View mTestLayout = rootView.findViewById(R.id.test_parent_layout);     mTestLayout .setTouchDelegate(

new TouchDelegate(

                    new Rect(0, 0, mTestLayout .getWidth(), mTestLayout .getHeight()),

                    rootView.findViewById(R.id.test_view)

)

          );     } });



반응형

'Development > Android' 카테고리의 다른 글

[Android] GridLayout  (0) 2016.04.18
[Android] dp를 px값으로 변환  (0) 2016.04.14
[Android] AsyncTask 중지하기  (0) 2016.03.23
[Android] Intent로 객체 전달하기  (0) 2016.02.12
[Android] ListView 계층 구조  (0) 2015.08.11

+ Recent posts