374 Stimmen

Der Aufruf von setCompoundDrawables() zeigt das Compound Drawable nicht an

Nachdem ich die setCompoundDrawables Methode, die Verbindung Drawable wird nicht gezeigt..

Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn.setCompoundDrawables(myDrawable, null, null, null);

Haben Sie eine Idee?

707voto

hunterp Punkte 15291

76voto

aryan bahmani Punkte 861

Verwenden Sie dies (ich habe es getestet). Es funktioniert gut

Drawable image = context.getResources().getDrawable( R.drawable.ic_action );
int h = image.getIntrinsicHeight(); 
int w = image.getIntrinsicWidth();   
image.setBounds( 0, 0, w, h );
button.setCompoundDrawables( image, null, null, null );

52voto

teoREtik Punkte 7824

Das Bild ist leer, weil es keine bestimmten Grenzen hat. Sie können verwenden setCompoundDrawables() aber vorher sollten Sie die Grenzen des Bildes angeben, indem Sie Drawable.setBounds() Methode

48voto

Andrew Punkte 33981

Beispiel nach oben gesetzt:

view.setCompoundDrawablesWithIntrinsicBounds(
    null,
    getResources().getDrawable(R.drawable.some_img),
    null,
    null
);

Reihenfolge der Argumente: (links, oben, rechts, unten)

24voto

Alecs Punkte 2804

Wieder ein bisschen einfacher:

Drawable image = context.getResources().getDrawable(R.drawable.ic_action );
image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() );
button.setCompoundDrawables( image, null, null, null );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X