android(안드로이드) android:layout_width 를 코드상에서 변경방법[LayoutParams]
layout_width값을 변경하는 방법 2가지
1. [xml]
< RelativeLayout
android:id=”@+id/chart_area”
android:layout_width=”180dp”
android:layout_height=”180dp”
android:layout_below=”@+id/main_info”
android:layout_marginTop=”10dp”
android:layout_centerHorizontal=”true”
android:gravity=”center|center_vertical”
android:background=”@drawable/main_circle_backgroud”>
< TextView
android:id=”@+id/main_mission_rate”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_centerHorizontal=”true”
android:layout_marginTop=”45dp”
android:textSize=”40sp”
android:textColor=”@color/welcolor27″ />
< TextView
android:id=”@+id/main_point”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_centerHorizontal=”true”
android:layout_below=”@+id/main_mission_rate”
android:textSize=”18sp”
android:textColor=”@color/welcolor28″ />
< /RelativeLayout>
2. [programmatically]
RelativeLayout 클래스의 LayoutParams메소드를 통하여 프로그램 방식으로 View를 재배치를 할 수 있다.
//화면 해상도 구하기
DisplayMetrics dm = getResources().getDisplayMetrics();
int displayWidth = (int) (200 * dm.density);
Log.e(“TEST”, “===============displayWidth : “+ displayWidth);
//DP값으로 변경
int marginTop = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.width = displayWidth / 2;
params.height = displayWidth / 2;
params.addRule(RelativeLayout.BELOW, R.id.main_info);
params.setMargins(0,marginTop,0,0);
params.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE); //백그라운드 가운데 정렬
chartArea.setLayoutParams(params);
//chartArea.setGravity(Gravity.CENTER|RelativeLayout.CENTER_VERTICAL); // 안먹히네