마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뷰 크기 변경하는 방법

0 추천
<com.example.pdr.Pdr_draw
       android:id="@+id/drawview"
       android:layout_gravity="center_horizontal"
   android:layout_width="500px"
   android:layout_height="500px"/>
 
xml에서 이런식으로 레이아웃을 호출해서 사용하고 있습니다.
 
위의 뷰는 width height가 500으로 돼 있는데
 
소스코드에서 위 사이즈를 변경해주려면 어떻게해야하나요 ?
 
LayoutParams를 이용해서 하려고 하니 버튼이나 텍스트 뷰 등은
TextView tv = (TextView) findViewById(R.id.tv);
 
이 tv 뷰를 set하면 되는것 같은데
 
<com.example.pdr.Pdr_draw>
이건 어떻게 뷰로 만들어서 크기를 조절해야하나요 ?
음무 (17,820 포인트) 님이 2014년 1월 8일 질문

1개의 답변

+1 추천
 
채택된 답변
  1. parent class 가 먼지 알아야 됩니다. 일단은 LinearLayout 으로 예상하고 적습니다.

LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tv.getLayoutParam();

tv.width = $changedValue;

식으로 진행 하면 width 값이 변경 됩니다.

aucd29 (218,390 포인트) 님이 2014년 1월 8일 답변
음무님이 2014년 1월 9일 채택됨
텍스트뷰가 아니라 <com.example.pdr.Pdr_draw   ....  /> 이런식으로 집어넣은 뷰는 어떻게 해야하나요 ?
Pdr_draw 가 어떤 view 를 상속했는지 확인하시고
Pdr_draw pdr = (Pdr_draw) findViewById(R.id.obj_id); 식으로 가져와서 사용 가능 합니다.
Pdr_draw 클래스는 서피스뷰를 상속했습니다.
서피스뷰는 obj_id가 없는데 어떻게해야하나요 ?
음... 여기서 obj_id 에 의미는  android:id="@+id/drawview"  입니다.
즉 R.id.drawview 가 되겠지요
그럼 Pdr_draw pdr = (Pdr_draw)findViewById(R.id.drawview);
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) pdr.getLayoutParam();
lp.width = 사이즈;
lp.height = 사이즈;

이렇게 하면 되는건가요 ?
윗글에 적혀 있듯이 Pdr_draw 를 감싸고 있는 parent 를 알아야 합니다.
<linear><pdr></linear> 인지
<relative><pdr></relative> 인지
<frame><pdr></frame>인지 이걸 확인한 뒤에 getLayoutParams 에 맞게 적용하세요
감사합니다. 덕분에 해결됐습니다 ~
...