L'appel de setCompoundDrawables () n'affiche pas le tirable composé

après que j'ai appelé la méthode setCompoundDrawables , le dessin composé N'est pas montré..

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

une idée?

266
demandé sur Rahul Tiwari 2011-07-06 06:08:02

8 réponses

j'avais besoin d'utiliser setCompoundDrawablesWithIntrinsicBounds .

549
répondu hunterp 2012-12-15 10:28:26

utilisez ceci (j'ai testé). Il fonctionne bien

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 );
57
répondu aryan bahmani 2016-06-15 07:55:03
L'Image

est vierge parce qu'elle n'a pas de limites spécifiées. Vous pouvez utiliser setCompoundDrawables() mais avant de spécifier les limites de l'image, en utilisant Drawable.setBounds() méthode

42
répondu teoREtik 2012-02-13 07:20:28

un peu plus simple encore:

Drawable image = context.getResources().getDrawable(R.drawable.ic_action );
image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() );
button.setCompoundDrawables( image, null, null, null );
21
répondu Alecs 2015-07-10 16:44:17

exemple placé en haut:

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

arguments d'ordre: (gauche, haut, droite, bas)

19
répondu Andrey 2016-11-09 20:52:25

il est déprécié dans API 22.

ce code m'est utile:

Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.wen, null);
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
tv.setCompoundDrawables(drawable, null, null, null);
8
répondu 許維德 2016-06-15 07:55:34

exemple avec Kotlin:

    val myView = layoutInflater.inflate(R.layout.my_view, null) as TextView
    myView.setCompoundDrawablesWithIntrinsicBounds(0, myDrawable, 0, 0)
1
répondu mike.tihonchik 2018-06-08 19:32:32