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.
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)
