How to set the ImageButton property of
app:srcCompat="@drawable/pic"
programmatically?
Something like myImageButton.setBackgroundResource(R.drawable.eng2); but the property of app:srcCompat.
You need to use setImageResource() method.
imageButton.setImageResource(R.drawable.eng2);
First, ensure you are dealing with AppCompatImageView, not regular ImageView:
AppCompatImageView iv = (AppCompatImageView)findViewById(....);
and then you can do:
iv.setImageResource(R.drawable.pic);
See other public methods in docs.
Using setImageResource() should fetch its resource in a backwards-compatible manner without any further effort required.
However if you are using setImageDrawable(), the ImageView/ImageButton will not help with any backwards compat and it's up to you to supply a backward-compat drawable, which is important for eg. if using VectorDrawables. The following will load and set a drawable in such a way:
val drawable = AppCompatResources.getDrawable(context, resourceId)
image.setImageDrawable(drawable)
None, of the provided solutions worked for me. I was using an ImageView. Finally, I found out that using setBackgroundResource() works for me.
view.setBackgroundResource(R.drawable.ic_star_black_18dp)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With