TextView,Button的DrawableLeft,,Right 使用代码动态的设置

Xml文件中设置相信大家都已经非常的熟悉了.

            

使用代码设置DrawableLeft,Right

第一种方案

       Drawable drawable = SwmUIUtils.getDrawable(imgs[position]);
                    // 确定drawable的位置
                    drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
//                      setCompoundDrawables 画的drawable的宽高是按drawable.setBound()设置的宽高,
//                    所以才有The Drawables must already have had setBounds(Rect) called.
//                    使用之前必须使用Drawable.setBounds设置Drawable的长宽。`

                    mTaskProgress.setCompoundDrawables(null, null, drawable, null);

第二种方案

setCompoundDrawablesWithIntrinsicBounds(null, null, UIUtils.getDrawable(R.mipmap.up_arrow), null);

setCompoundDrawablesWithIntrinsicBounds是画的drawable的宽高是按drawable固定的宽高,
所以才有The Drawables' bounds will be set to their intrinsic bounds.

即通过getIntrinsicWidth()与getIntrinsicHeight()获得,

你可能感兴趣的:(TextView,Button的DrawableLeft,,Right 使用代码动态的设置)