web-dev-qa-db-ja.com

Android画像をボタンに追加

元のAndroidを保持したまま、画像をButtonに追加したい(imagebuttonはありません。特定のボタンにはテキストまたは画像を含めることができます。さらに、画像ボタンにも同じ問題があります)。スタイルのボタン。したがって、XMLにAndroid:backgroundを追加しても、Android角の丸いデフォルトボタンなどが削除されるため、カットされません。(Android.R.drawable.btn_default)

これは何らかの方法で可能ですか?

1つの方法は、押されたボタンの9patch画像(上に1つ、下に1つ)を作成し、onTouch Action_DOWNレイヤードバックグラウンドをドローアブルにしてボタンに配置することです。しかし、別の9patch for onTouch Action_UPを使用しますが、すべてのボタンクリック(およびアプリケーション、それはかなりたくさんなります)。上記の内容は正しいですか?

編集:画像をWebサービスから取得するため、XMLで画像のソースを宣言できません。ボタンには何でも配置できますが、プログラムで実行する必要があります。

12
stealthjong

これは、Android:drawableTopAndroid:drawableBottomAndroid:drawableLeftAndroid:drawableRight layout.xmlの属性。

25
Ridcully

enter image description here

     <Button
            Android:layout_width="0dp"
            Android:layout_weight="1"
            Android:background="@drawable/home_button"
            Android:drawableLeft="@Android:drawable/ic_menu_edit"
            Android:drawablePadding="6dp"
            Android:gravity="left|center"
            Android:height="60dp"
            Android:padding="6dp"
            Android:text="AndroidDhina"
            Android:textColor="#000"
            Android:textStyle="bold" />

詳細情報 http://androiddhina.blogspot.in/2015/09/how-to-add-image-inside-button.html

10
Dhina k

テキスト付き画像を表示するボタンのプロパティの下に設定します。このプロパティ画像を使用すると、テキストの上に表示されます。

<Button Android:drawableTop="@drawable/ic_launcher"/>
8
Dipak Keshariya

画像設定用:

btn.setBackgroundResource(R.drawable.ic_launcher);

テキストを設定する場合:

btn.setText("My Button");

コード:

private Drawable buttonDrawable;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Button btn=(Button) findViewById(R.id.button1);
    buttonDrawable=btn.getBackground();
    //Setting the image.
    btn.setBackgroundResource(R.drawable.ic_launcher);
    btn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            /*Removing image and setting text*/
            btn.setBackgroundDrawable(buttonDrawable);
            btn.setText("My Button");   
        }
    });
}
2
Eldhose M Babu

複数の状態を持つ独自のドローアブルを作成し、それを背景に設定できます

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_enabled="false" 
        Android:drawable="@drawable/selected" />
    <item Android:drawable="@drawable/normal" />
</selector>

ドローアブルは、そのように角を丸くすることができます。

<corners Android:topLeftRadius="5dp" Android:topRightRadius="5dp"
         Android:bottomLeftRadius="0.2dp" Android:bottomRightRadius="0.2dp"/>
0
weakwire