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