android imageview.setBackgroundResource()不起作用

时间:2011-12-21 16:16:04

标签: java android image mobile imageview

我有一个图像视图,应该点击

进行更改
public class Settings extends Activity implements OnClickListener
{
     private ImageView im1;
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.settings);
         im1 = (ImageView) findViewById( R.id.imageView1 );
         im1.setOnClickListener(this);
     }
     @Override
     public void onClick(View v)
     {
         // TODO Auto-generated method stub
         if (v == im1 )
         {
             Log.d("test", "hey!");
             v.setBackgroundResource(R.drawable.img1);
         }
     }
}
单击

时,该方法运行并打印出“嘿!”但图像不会改变?

编辑:忘了提及imageview包含xml布局文件提供的另一张图片

5 个答案:

答案 0 :(得分:47)

按照惯例,您应该使用setImageResource(R.drawable.img1);(或setImageDrawable(getResources().getDrawable(R.drawable.img1));)代替setBackgroundResource(R.drawable.img1);

答案 1 :(得分:3)

  ImageView i = (ImageView) findViewById( R.id.imageView1 );
  i.setImageResource(R.id.logo);

   or

  i.setBackgroundResource(R.drawable.icon);

答案 2 :(得分:1)

<强>更新

现在,你可以使用如下,

var navRender = function indexNav(x,y) {

    var mainNav = ["\/", "Inicio","\/abogados-criminales-los-angeles.html", "Defensa Criminal", 
    "\/delitos-de-drogas-abogados.html", "Delitos de Drogas", 
    "\/area-de-practica-abogados.html", "Areas de Practica",
    "\/abogados-friendman-los-angeles.html", "Abogados Friedman",
    "\/contactenos.html", "Contactenos"];

    for (i = x; i <= y; i++) {
        document.write("<li class=\"pure-menu-item pure-u-1-3\"><a class=\"pure-menu-link href=\"",mainNav[i]);
        i++;
        document.write("\">", mainNav[i] , "<\/a><\/li>");
    };
};

document.getElementById("demo").innerHTML = navRender(0,5);

</script>

答案 3 :(得分:1)

在API 25中试试这个

imgSchedule.setImageDrawable(getResources().getDrawable(R.drawable.circle_image_selected));

答案 4 :(得分:0)

不应该使用setimageResource()。 这两个API都可以使用。

另外,在您的情况下,它看起来就像是资源不同步。