2010-11-23 12 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を使ってみましたが、ボタンは表示されませんでした。

ストックラジオボタンの代わりにdrawablesを使用しています。違いがあるかどうかはわかりませんが、ドロワーブルはすべて同じサイズ(50px x 50px)です。

どのように私はこれらの高さと幅を設定することができます知っているので、彼らは異なる画面サイズに自分自身を調整するのだろうか?

答えて

7

pxの代わりにdpを使用して高さと幅を設定します。ユニットの詳細については、この記事の回答を参照してください。 What is the difference between "px", "dp", "dip" and "sp" on Android?

複数の画面をサポートするためにアンドロイドのdocumentationに慣れさせることをお勧めします。

さて、Android 1.5を対象とした簡単なサンプルをまとめました。

source hereがあります。要するに

は、次の手順を実行する必要があります。

res/drawableであなたのイメージを置きます。あなたは、少なくとも4つのアイコンを持っている必要があります、チェック&プレス、未確認&を押していない&チェックなし、押されていない&チェック

は、RES /描画可能で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そうのように:私のドロウアブルの寸法はは50px Xは50pxあるように私は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ではないことに注意してください。 Image of Custom RadioButton

:これは、次のような結果を与える必要があります

Custom RadioButton(それはSDと電話アクセス権を要求していないでしょうSDKのバージョン4を対象とし注)ここで

は、上記のプロジェクトの署名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

関連する問題