Search code examples
javaandroidandroid-imageview

To update image in ImageView which method is better setImageResource() or setImageDrawable()


I am Android Newbie, while learning ImageView widgets I learned 2 possible methods to update image in ImageView.

This is the way the Instructor suggested:

onButtonClick(View view) {
    ImageView myImageView = (ImageView) findViewById(R.id.imageView);
    myImageView.setImageResource(R.drawable.cn);
}

The other one is something I came up myself:

onButtonClick(View view) {
    ImageView myImageView = (ImageView) findViewById(R.id.imageView);
    newDrawable = getResources().getDrawable(R.drawable.cn);
    myImageView.setImageDrawable(null);
    myImageView.setImageDrawable(newDrawable);
}

I would like to understand a few things better:

  • Which method is recommended in my case?
  • What are pros/cons of using setImageResource() vs setImageDrawable()

Solution

  • In your case, setimageResource will be better because you just need to set the image.

    getResources().getDrawable(R.drawable.cn);
    

    It will be worthwhile in case you need to do changes in drawable, like color filtering, resizing, etc.