2014-10-28 2 views
0

도움을 미리 감사드립니다.XML을 사용하지 않고 확인란 크기를 변경하십시오.

은 내가 메서드 호출 내가 체크 박스의 크기 체크 박스와 같은 호출로 (실제 박스가 아닌 상자와 텍스트 콤보)을 변경하려는

public int myMethod(Context context, doThing) { 
    if(doThing){ 
      this.checkBox = new CheckBox(context); 
      do some stuff... 
      return 1; 
    }else{ 
      do something else... 
      return 0; 
    } 
} 

에서 만드는 오전 체크 박스가 있습니다. setBoxSize (mySize) setBoxSize는 네이티브 안드로이드 메소드가 아닙니다. 이 작업을 수행 할 수 있습니까? 그렇다면 어떻게해야합니까?

답변

3

같은 checkbox의 레이아웃에 Params를 설정해야합니다

this.checkBox = new CheckBox(context); 
this.checkBox.setLayoutParams(new LinearLayout.LayoutParams(width, height)); // or if your parent is RelativeLayout use RelativeLayout.LayoutParams(width, height) 

참고 너비와 높이가 픽셀 단위인지 확인하십시오. 당신이 레이아웃 PARAMS 기존에 이미 변경하려면

, 당신은 같이해야합니다 :

private void setBoxSize(CheckBox checkBox) { 
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) checkBox.getLayoutParams(); // or RelativeLayout.LayoutParams 
    params.height = yourHeightInPixels; 
    params.width = yourWidthInPixels; 
    checkBox.setLayoutParams(params); 
} 

편집 : 당신이 체크 박스의 버튼의 크기를 변경하려는 경우이 경우 , 당신은 할 수 이 방법 중 하나만 사용하십시오.

checkBox.setButtonDrawable(int resId); 
checkBox.setButtonDrawable(Drawable d); 

그리고 드로어 블의 크기를 올바르게 설정하십시오. 안타깝게도 안드로이드는 체크 박스의 버튼을 조작하는 메소드를 가지고 있지 않습니다. 드로어 블의

예, 즉 체크 박스의 버튼으로 사용이 작동하지 않습니다

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" 
     android:drawable="@drawable/ic_check_on" /> <!-- checked --> 
    <item android:state_checked="false" 
     android:drawable="@drawable/ic_check_off" /> 
</selector> 
+0

이것은 실제 확인란의 크기를 변경하는 것으로 보입니다. 나는 체크 박스의 크기를 변경하고 싶지 않다. 체크 상자 안에있는 "상자"의 크기를 변경하고 싶다. 그 말이 맞는다면. – HXSP1947

+0

상자를 이미지로 대체하여 측면을 바꿀 수 있습니까? 그렇다면 어떻게해야합니까? 나는 이미 크기를 바꾸는 것이 가능하지 않았다고 결론을 내 렸습니다. 그렇다면 그렇게하기가 쉽지 않았습니다. – HXSP1947

+0

checkBox.setButtonDrawable (R.drawable.your_drawable_instead_box); 드로어 블은 원하는 크기 여야합니다. – rom4ek

0

당신은 당신이이 방법을 사용할 수있는 미리 정의 된 폭과 높이 당신의 체크 박스를 만들려면이

//width and height are in pixels 
checkbox.setLayoutParams(new ViewGroup.LayoutParams(width,height)); 
+0

. 다양한 조합을 테스트하는 데 1 시간을 보냈습니다. – CoolMind

관련 문제