it-swarm.com.de

Android Bild zum Button hinzufügen

Ich möchte ein Bild zu einer Button hinzufügen (keine imagebutton, da die bestimmte Schaltfläche entweder Text oder ein Bild enthalten kann; außerdem hat die Bildschaltfläche das gleiche Problem), während die ursprüngliche Android-Schaltfläche beibehalten wird. Wenn Sie also Android:background in XML einfügen, wird dies nicht geschnitten, da dadurch die Android-Standardschaltfläche mit abgerundeten Ecken usw. entfernt wird. (Android.R.drawable.btn_default)

Ist das irgendwie möglich?

Ich denke, eine Möglichkeit besteht darin, ein 9patch Bild für die gedrückte Taste (eines für oben und eine für unten) und onTouch Action_DOWN einen geschichteten Hintergrund zeichnen zu lassen, das auf die Schaltfläche zu setzen und dasselbe zu tun Aber mit einem anderen 9patch für onTouch Action_UP, aber ich denke, dass dies die Leistung der Anwendung erheblich verringern wird, da dies einiges an Ressourcenlesen und Layer-Mischen für alle Tastenklicks (und für meine) erfordert Anwendung, das wird ziemlich viel sein). Ist das, was ich oben sage, richtig?

BEARBEITEN: Ich kann die Quelle des Bildes nicht in der XML-Datei angeben, da ich die Bilder von einem Webservice bekomme. Daher kann alles auf die Schaltflächen gestellt werden. Dies muss jedoch programmgesteuert geschehen.

11
stealthjong

Dies kann mit den Attributen Android:drawableTop, Android:drawableBottom, Android:drawableLeft, Android:drawableRight in Ihrer layout.xml erfolgen. 

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" />

weitere Informationen http://androiddhina.blogspot.in/2015/09/how-to-add-image-inside-button.html

10
Dhina k

Stellen Sie unter Eigenschaft der Schaltfläche für Bild mit Text anzeigen ein, wobei dieses Bild über Text angezeigt wird.

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

Zum Einstellen des Bildes: 

btn.setBackgroundResource(R.drawable.ic_launcher);

Zum Einstellen von Text:

btn.setText("My Button");

Code: 

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

Sie können Ihr eigenes Zeichen mit mehreren Zuständen erstellen und als Hintergrund festlegen 

<?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>

Zeichnungen können abgerundete Ecken haben.

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