在我调用setCompoundDrawables方法后,复合Drawable没有显示。
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn.setCompoundDrawables(myDrawable, null, null, null);
任何想法吗?
在我调用setCompoundDrawables方法后,复合Drawable没有显示。
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn.setCompoundDrawables(myDrawable, null, null, null);
任何想法吗?
当前回答
对我来说,setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable, Drawable, Drawable)不工作。
我必须使用setcompounddrawableswithintrinsic icbounds(0,0,0,0)。
其他回答
我需要使用setCompoundDrawablesWithIntrinsicBounds。
再简单一点:
Drawable image = context.getResources().getDrawable(R.drawable.ic_action );
image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() );
button.setCompoundDrawables( image, null, null, null );
在芬兰湾的科特林:
1)设置可绘制:
val drawable = ContextCompat.getDrawable(context!!,R.drawable.ic_image)?.apply {
setBounds(0, 0, intrinsicWidth, intrinsicHeight)
}
or
val drawable = ResourcesCompat.getDrawable(resources, R.drawable.ic_image, null)?.apply {
setBounds(0, 0, minimumWidth, minimumHeight)
}
2)设置TextView:
textView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null)
or
button.setCompoundDrawables(null, drawable, null, null)
Kotlin的例子:
val myView = layoutInflater.inflate(R.layout.my_view, null) as TextView
myView.setCompoundDrawablesWithIntrinsicBounds(0, myDrawable, 0, 0)
图像是空白的,因为它没有指定的边界。你可以使用setCompoundDrawables(),但在指定图像的边界之前,使用Drawable.setBounds()方法