调用setCompoundDrawables()不会显示Compound Drawable
在我调用setCompoundDrawables
方法后,复合Drawable不显示..
Drawable myDrawable = getResources().getDrawable(R.drawable.btn); btn.setCompoundDrawables(myDrawable, null, null, null);
有什么想法吗?
我需要使用setCompoundDrawablesWithIntrinsicBounds
。
使用这个(我testing)。 它运作良好
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 );
图像是空白的,因为它没有指定边界。 您可以使用setCompoundDrawables()
但在指定图像的边界之前,使用Drawable.setBounds()
方法
再简单一点:
Drawable image = context.getResources().getDrawable(R.drawable.ic_action ); image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() ); button.setCompoundDrawables( image, null, null, null );
设置在顶部的示例:
view.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.drawable.some_img), null, null);
参数顺序:(左,上,右,下)
它在API 22中被弃用。
这段代码对我很有用:
Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.wen, null); drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); tv.setCompoundDrawables(drawable, null, null, null);