Programmatically change drawableLeft of Button

后端 未结 5 1213
太阳男子
太阳男子 2021-02-09 00:50

I\'m using a Button

相关标签:
5条回答
  • 2021-02-09 01:14

    just follow this code i hope it's really helpful for you..

    boolean isIconChange;
    button.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View arg0) {
            isIconChange = !isIconChange;
            if(isIconChange){
               button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.like, 0, 0, 0);
               button.setTextColor(Color.BLACK);
            } else {
               button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.dislike, 0, 0, 0);
               button.setTextColor(Color.RED);
            }
        }
    });
    
    0 讨论(0)
  • 2021-02-09 01:26

    The safest way to set the left drawable without changing the values of the other drawables (top, right, and bottom):

    Drawable[] drawables = textViewExample.getCompoundDrawables();
    textViewExample.setCompoundDrawablesWithIntrinsicBounds(leftDrawable, drawables[1], drawables[2], drawables[3]);
    
    0 讨论(0)
  • 2021-02-09 01:27

    I recomend that instead of using a button you use an Imageview and add an onclick listener to it. That way you can just do Imageview.setbitmap(bitmap) and create a bitmap from one of your drawables

    0 讨论(0)
  • 2021-02-09 01:30

    Try this:

    int imgResource = R.drawable.left_img;
    button.setCompoundDrawablesWithIntrinsicBounds(imgResource, 0, 0, 0);
    

    Reference

    0 讨论(0)
  • 2021-02-09 01:36

    To do this, you can use the

    setCompoundDrawables(...);

    method. Be aware that comes with TextView, not Button.

    This is how to use it:

    Drawable img = getContext().getResources().getDrawable( R.drawable.yourimage);
    img.setBounds( 0, 0, 60, 60 );  // set the image size
    txtVw.setCompoundDrawables( img, null, null, null );
    

    Taken from: How to programmatically set drawableLeft on Android button?

    0 讨论(0)
提交回复
热议问题