I want to check which image resource is attached to ImageView
in xml, I am able to check that which image resource is attached to image view but my requirement is to how to check that the ImageView
has the same resource which I have set into xml or not, based on that I need to perform some actions.Code always executes else part. Following is my code,
if (regProfile.getDrawable() == getResources().getDrawable( R.drawable.ivpic)) { Toast.makeText(_con, "Image is ivPic", Toast.LENGTH_LONG).show(); // new RegisterAsyntaskNew().execute(); } else { Toast.makeText(_con, "Image isn't ivPic", Toast.LENGTH_LONG).show(); // new RegisterAsyntask().execute(); }
You can use imageButton. getDrawable() to get the drawable of the ImageButton object and then use setImageDrawable() instead of setImageResource() .
The background will stretch according to the length given by the ImageView component, and SRC will hold the size of the original image without stretching. SRC is the picture content (foreground), BG is the background, can be used at the same time.
Hi please have a try with this as follows
if (regProfile.getDrawable().getConstantState() == getResources().getDrawable( R.drawable.ivpic).getConstantState()) { Toast.makeText(_con, "Image is ivPic", Toast.LENGTH_LONG).show(); // new RegisterAsyntaskNew().execute(); } else { Toast.makeText(_con, "Image isn't ivPic", Toast.LENGTH_LONG).show(); // new RegisterAsyntask().execute(); }
please use .getConstantState()
to compare
visit
http://developer.android.com/reference/android/graphics/drawable/Drawable.html
http://developer.android.com/reference/android/graphics/drawable/Drawable.ConstantState.html
EDIT:
.getResources().getDrawable(imageResource)
Is deprecated in API21, so I changed Jitesh Upadhyay's answer.
Here is the code:
@SuppressWarnings("deprecation") @SuppressLint("NewApi") public static boolean checkImageResource(Context ctx, ImageView imageView, int imageResource) { boolean result = false; if (ctx != null && imageView != null && imageView.getDrawable() != null) { ConstantState constantState; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { constantState = ctx.getResources() .getDrawable(imageResource, ctx.getTheme()) .getConstantState(); } else { constantState = ctx.getResources().getDrawable(imageResource) .getConstantState(); } if (imageView.getDrawable().getConstantState() == constantState) { result = true; } } return result; }
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