2016-10-04 7 views
1

私は3つの画像ボタンを含む線形レイアウトを持っています。各画像ボタンの色は異なります。最初の時点では、すべての画像ボタンはチェックされていません。画像ボタンが選択されている場合(青色のVが画像ボタンの背景と重なっている場合)、画像ボタンのチェック/選択を設定します。もう1つの画像ボタンはチェックされません。どのように私はアンドロイドでそれを行うことができますか?Androidでチェック/選択した画像ボタンを設定する

これは私のレイアウト更新

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_marginTop="7dp" 
    android:layout_centerInParent="true"> 
    <ImageButton 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/color1" 
     android:background="@color/colorAccent"/> 
    <ImageButton 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/color2" 
     android:layout_marginLeft="5dp" 
     android:background="@color/colorPrimaryDark" /> 
    <ImageButton 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/color3" 
     android:layout_marginLeft="5dp" 
     android:background="@color/colorPrimary"/> 
</LinearLayout> 

です:青いV手段は、状態を確認しました。それは私がこのタスクのチェックボックスを使用することをお勧め結果

enter image description here

+0

青色とは何ですか? 3つのうち1つしか選択できないということですか?マルチセレクトはありませんか?もっと詳しく教えてください –

+0

'V'はチェック状態を意味します。それがチェックされるとチェックボックスが表示されます。あなたが正しいです。私は複数のチェックの代わりに単一のチェックをしたいだけです – Jame

+0

あなたはそれぞれのイメージをクリックして複数チェックするのではなく、シングルチェックのロジックをしたいですか? –

答えて

1

似ています。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_marginTop="7dp" 
    android:layout_centerInParent="true"> 
    <android.support.v7.widget.AppCompatCheckBox 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/color1" 
     android:button="@drawable/color_selector" 
     android:background="@color/accent"/> 
    <android.support.v7.widget.AppCompatCheckBox 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/color2" 
     android:button="@drawable/color_selector" 
     android:layout_marginLeft="5dp" 
     android:background="@color/primary" 
     android:checked="false" /> 
    <android.support.v7.widget.AppCompatCheckBox 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:button="@drawable/color_selector" 
     android:id="@+id/color3" 
     android:layout_marginLeft="5dp" 
     android:background="@color/primary_dark"/> 
</LinearLayout> 

とcolor_selector.xmlが必要セレクタ(一例)、これは役立つ

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_checked="true" android:drawable="@drawable/ic_done_white_18dp"> 
    <shape android:shape="rectangle" > 
     <stroke android:color="@color/white" android:width="2dp"/> 
     <corners 
      android:bottomLeftRadius="@dimen/spacing_xxsmall" 
      android:bottomRightRadius="@dimen/spacing_xxsmall" 
      android:topLeftRadius="@dimen/spacing_xxsmall" 
      android:topRightRadius="@dimen/spacing_xxsmall" /> 
    </shape> 
</item> 
<item android:state_checked="false"> 
    <shape android:shape="rectangle"> 
     <stroke android:color="@color/white" android:width="1dp"/> 
     <corners 
      android:bottomLeftRadius="@dimen/spacing_xxsmall" 
      android:bottomRightRadius="@dimen/spacing_xxsmall" 
      android:topLeftRadius="@dimen/spacing_xxsmall" 
      android:topRightRadius="@dimen/spacing_xxsmall" /> 
    </shape></item> 
</selector> 

希望に描画可能なフォルダ内に配置されるべきです。

+0

カスタム 'View'クラスを作成しない限り、' AppCompatCheckBox'を使う必要はありません。該当する場合は自動的に使用されます。 [documentation](https://developer.android.com/reference/android/support/v7/widget/AppCompatCheckBox.html)から: "レイアウトで' CheckBox'を使用すると自動的に使用されます。カスタムビューを作成するときにこのクラスを手動で使用する必要があります。 – Bryan

+0

そうです。それはオートコンプリートでした。 –

+0

遅れて申し訳ありません。これは私が必要とするものです。 'android:bottomLeftRadius'、' android:bottomRightRadius'で '@ dimen/spacing_xxsmall'の値を示唆してもらえますか... – Jame

関連する問題