如何在运行时将String用作Image-Name

时间:2017-04-06 20:15:57

标签: android image

我有很多图像,我想写一个短代码 我只想在运行时更改图像名称,代码应该将图片插入正确的图像 我试着这样:

    img1 = (ImageView) findViewById(R.id.imageView_1);
    img2 = (ImageView) findViewById(R.id.imageView_2);
    img3 = (ImageView) findViewById(R.id.imageView_3);
    img4 = (ImageView) findViewById(R.id.imageView_4); }

public void Load_IN_img1(View view) {
    image_x="img1"; 
  Picasso.with(Main.this).load("http://blabla.comimage1.png").into(image_x);  


public void Load_IN_img1(View view) {
    image_x="img2"; 
 Picasso.with(Main.this).load("http://blabla.comimage1.png").into(image_x);  

这意味着,如果我将字符串image_x更改为" img4"所以代码应该将图片插入到想要的图像中,进入img4。

如何在运行时找到图像名称?

2 个答案:

答案 0 :(得分:1)

谢谢人们,经过长时间的谷歌搜索,我在论坛上找到了解决方案: enter link description here

public void Load_IN_img1(View view) {    
 String  image_x="imageView1";// variable 
  int id = getResources().getIdentifier(image_x, "id",   
  this.getPackageName()); 
  ImageView img = findViewById(id);
 Picasso.with(Main.this).load("http://blabla.comimage1.png").into(image_x); 

答案 1 :(得分:0)

我想完美的方法是使用view id。 例如: relatedViewId =公共静态最终整数值在R.java中定义

public void loadImage(View view) {
    image_x = (ImageView) findViewById(relatedViewId);
    Picasso.with(Main.this)
    .load("http://blabla.comimage1.png")
    .into(image_x);
}

此外,您可以使用任何其他方式来解决此问题,如反射,String.equals等。但是, relatedViewId 更高性能其他< /强>