0

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()
sob
  • 982
  • 11
  • 31
  • 1
    I think is better to use setImageResource... I don´t remember exactly the case, but I worked in an app in production and some users saw the svg resources in black color (maybe API 21). Finally, my cowerker fix the error using setImageResource. – Manuel Mato Oct 27 '20 at 08:25

1 Answers1

1

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.

Lakhwinder Singh
  • 6,799
  • 4
  • 25
  • 42