2010-11-23 4 views
3

나는이 라디오 버튼을 가지고 있고 그들이 android:width="X"android:height"X"을 필요로하지만, 나는 다른 스크린 크기에 적응할 수 있도록이 속성들을 설정하는 방법을 모른다. 여기 화면 크기와 관련하여 라디오 버튼의 폭을 변경하려면 어떻게해야합니까? (안드로이드)

내가 내 버튼에 사용하고 코드입니다 : 나는 테이블 행에있는 라디오 버튼을 퍼팅 시도했다

<RadioGroup android:layout_width="fill_parent" 
     android:layout_height="50px" android:orientation="horizontal" 
     android:checkedButton="@+id/first" android:id="@+id/states"> 

       <RadioButton android:id="@+id/first" 
        android:background="@drawable/button_radio" android:width="50px" 
        android:height="50px" /> 

       <RadioButton android:id="@+id/second" 
        android:background="@drawable/button_radio" android:width="50px" 
        android:height="50px" /> 

       <RadioButton android:id="@+id/third" 
        android:background="@drawable/button_radio" android:width="50px" 
        android:height="50px" /> 

       <RadioButton android:id="@+id/fourth" 
        android:background="@drawable/button_radio" android:width="50px" 
        android:height="50px" /> 

       <RadioButton android:id="@+id/fifth" 
        android:background="@drawable/button_radio" android:width="50px" 
        android:height="50px" /> 

    </RadioGroup> 

,하지만 그들은 제대로 작동하지 않습니다. 하나를 클릭하면 선택한 것이지만 다른 것을 클릭하면 선택을 해제하지 않았습니다.

android:widthandroid:layout_width으로 바꾸려고 시도했지만 표시되지 않습니다.

나는 dip을 사용해 보았지만 버튼이 나타나지 않았다.

또한 재고 라디오 버튼 대신 드로어 블을 사용하고 있다고 덧붙여 야합니다. 이것이 차이를 만들지 모르겠지만 드로어 블은 모두 같은 크기 (50x50 픽셀)입니다.

누구나 내가 높이와 너비를 어떻게 설정할 수 있는지 알고 있으므로 다른 화면 크기로 조정할 수 있습니까?

답변

7

px 대신 dp를 사용하여 높이와 너비를 설정하십시오. 단위에 대한 자세한 내용은이 게시물에 대한 답변을 참조하십시오. What is the difference between "px", "dp", "dip" and "sp" on Android?

여러 화면을 지원할 때 안드로이드의 documentation을 숙지하시기 바랍니다.

좋아요, 그래서 잠시 시간을내어 Android 1.5를 대상으로 한 간단한 예를 요약 해 보았습니다.

source here을 찾을 수 있습니다. 한마디로

, 당신은 다음 단계를 수행해야합니다

장소 이미지를 res/drawable에. 당신은 적어도 4 개 아이콘이 있어야합니다, 검사 & 프레스, 체크되지 & 프레스드 누르지 & 체크되지 않는, 누르지 & 검사

는 고해상도/당김의 selector 형 레이아웃을 만듭니다. 다음은 내 꺼야 :

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:state_pressed="false" 
    android:drawable="@drawable/radio_on"/> 
    <item android:state_checked="false" android:state_pressed="false" 
    android:drawable="@drawable/radio_off"/> 
    <item android:state_checked="true" android:state_pressed="true" 
    android:drawable="@drawable/radio_on_pressed"/> 
    <item android:state_checked="false" android:state_pressed="true" 
    android:drawable="@drawable/radio_off_pressed"/> 
</selector> 

그런 설정하여 RadioGroup과 같이 내 드로어 블의 크기는 50 픽셀 X 50 픽셀만큼 내가 50dp의 차원을 지정한

<RadioGroup android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:orientation="horizontal" 
    android:checkedButton="@+id/first"> 
    <RadioButton android:id="@+id/first" 
     android:width="50dp" 
     android:height="50dp" 
     android:button="@drawable/button_radio"/> 
    <RadioButton android:id="@+id/second" 
     android:width="50dp" 
     android:height="50dp" 
     android:button="@drawable/button_radio"/> 
    <RadioButton android:id="@+id/third" 
     android:width="50dp" 
     android:height="50dp" 
     android:button="@drawable/button_radio"/> 
    <RadioButton android:id="@+id/fourth" 
     android:width="50dp" 
     android:height="50dp" 
     android:button="@drawable/button_radio"/> 
</RadioGroup> 

. 또한 android:button을 설정하고 android:background이 아님을 확인하십시오. Custom RadioButton (참고 :이 SDK 버전을 타겟으로 4 그래서 요청하지 않을 SD 및 전화 권한)

이것은 다음과 같은 결과를 제공해야합니다 : Image of Custom RadioButton

을 여기

위 프로젝트의 서명 된 APK입니다

희망이 도움이됩니다.

+0

미안하지만, 나는 딥 시도했지만 그 버튼을 표시하지 말았어야했다. 나는 그것을 OP에 추가 할 것이다. 또한 표준 버튼 대신 드로어 블을 사용한다는 사실을 추가 할 것입니다. – NotACleverMan

+1

버튼이 실제 이미지라면 3 가지 다른 버전을 만들어서'res/drawable-ldpi','res/drawable-mdpi','res/drawable-hdpi' 폴더에 넣으십시오. 왜 픽셀 크기를 지정하고 있습니까? – Thomas

+0

나는 모든 버전의 안드로이드 용으로 이것을 만들고 있으며 현재 드로어 블은 "드로어 블"폴더에만 있습니다. 1.5 에뮬레이터에서도 실행하고 있습니다. 버튼이 실제로 표시되는 유일한 방법이기 때문에 픽셀 크기 만 지정하고 있습니다. 테이블에 그들은 보여 주지만, 선택을 해제하지 않으며, 다른 방법으로는 전혀 나타나지 않습니다. 그들이 있어야하는 단지 큰 검은 공간. – NotACleverMan

8

나는 당신을 radioGroup에 다음과 같은 시도를 제안 :

  <RadioButton android:id="@+id/first" 
       android:background="@drawable/button_radio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:weight=1 /> 

      <RadioButton android:id="@+id/second" 
       android:background="@drawable/button_radio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:weight=1 /> 

      <RadioButton android:id="@+id/third" 
       android:background="@drawable/button_radio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:weight=1 /> 

      <RadioButton android:id="@+id/fourth" 
       android:background="@drawable/button_radio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:weight=1 /> 

      <RadioButton android:id="@+id/fifth" 
       android:background="@drawable/button_radio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:weight=1 /> 

</RadioGroup> 

이 방법 라디오 버튼은 모두 동일한 공간을 차지합니다. 또한 화면 크기에 따라 변경됩니다.

+0

이것은 받아 들여진 응답이어야한다! – satyadeepk