Android

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); // 안먹히네

Leave a Reply

error: Content is protected !!