Button

RadioButtonのButtonイメージについて

普通な場合で、黙認するスタイルを使って、RadiobuttonのButtonイメージは文字より大きくてたくさんで、見たところとてもつり合いがとれていないで、自分の定義のスタイルを使って改正することができて、具体的な方法は下記通りです 1.drawableファイルでxmlを新規作って、その中が異なる状態下に異なイメージを指定する

2.RadioButtonの属性「Button」を指定する

3.効果は下記通りです

IconButtonの使用(選択したと選択しない時、ボタンの背景を切り替える)

選択したと選択しない時、ボタンの背景を切り替えるので、自分でButtonクラスを実装する方法

  • 1.以下のメソッドを実装するべき
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class IconButton {

    private static final String ATTRI_DEFAULT_ICON ="default_icon";j
    private static final String ATTRI_ICON ="icon";j
    private static final String ATTRI_SELECTED_ICON ="selected_icon";j
    private static final String XML_NAMESPACE_CASIO ="http://www.casio.co.jp";

    private int iconSelected;
    private int icon;
    private int iconDefault;
    private boolean isSelected;

    public IconButton(Context context,AttributeSet attrs){
        super(context,attrs);
        //iconSelected:選択したボタンの背景
        //icon:選択しないボタンの背景
        //iconDefault:ボタンのデフォルト背景
        iconSelected=attrs.getAttributeResourceValue(XML_NAMESPACE_CASIO,ATTRI_SELECTED_ICON,0);
        icon=attrs.getAttributeResourceValue(XML_NAMESPACE_CASIO,ATTRI_ICON,0);
        iconDefault=attrs.getAttributeResourceValue(XML_NAMESPACE_CASIO,ATTRI_DEFAULT_ICON,0);
        if(iconDefault==0){
            ]iconDefault=icon;
        }
        setBackgroundResource(iconDefault);

    }

    /**ボタンを押しって、選択ステータスを切り替える
     * @return
     */
    @Override
    public boolean performClick(){
        isSelected=!isSelected;
        setBackColor();
        return super.performClick();
    }

    private void setBackColor(){
        int resIcon=icon;
        if(isSelected){
            resIcon=iconSelected;
        }
        setBackgroundResource(resIcon);

    }

    @Override
    public void se4tSelected(boolean isSelected){
        //選択ステータスに変更して、ボタンの背景も変更する
        this.isSelected=isSelected;
        setBackColor();

    }
}
  • 2.クラスは使用する方法
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://www.casio.co.jp"
    android:layout_width="363dp">
<!-- 属性を設定する -->
<!-- 「casio:default_icon」:デフォルト背景 -->
<!-- 「casio:icon」:選択しない背景 -->
<!-- 「casio:selected_icon」:選択する背景 -->
    <jp.casio.vx.app.paperwriter.finder.view.IconButton
        android:id="@+id/buttonList"
        android:layout_toLeftOf="@+id/buttonTitle"
        android:default_icon="@drawable/btn_list_on"
        android:icon="@drawable/btn_list_off"
        android:default_icon="@drawable/btn_list_on"
        android:selected_icon="@drawable/btn_list_on"
        android:layout_height="match_parent" />