android以编程方式更改imageview

时间:2015-06-06 17:26:59

标签: java android imageview

我正在创建一个Android应用程序,每次用户输入值时都会显示相同的imageview。但是我希望每次用户输入值时都会更改imageview。我写了一个代码来做这个,但问题是在第一个图像显示后我面对黑屏,它带我到应用程序的第一页,它不会崩溃只显示黑屏。

这是xml文件中的imageview代码:

    <ImageView
        android:id="@+id/ImageSuccess"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_marginBottom="20dip"
        android:layout_marginTop="20dip"
        android:scaleType="centerInside"
        android:src="@drawable/image1" />

在这里我在java文件中更改了imageview:

  ImageView myImage= (ImageView) findViewById(R.id.ImageSuccess);    

   if(userVlue.equals("SCHOOL")){

        myImage.setImageResource(R.drawable.image1);    
    }
    else if(userVlue.equals("CAR")){
        myImage.setImageResource(R.drawable.image2);    
    }
   else if(userVlue.equals("TOY")){
       myImage.setImageResource(R.drawable.image3); 
    }

2 个答案:

答案 0 :(得分:1)

myImage或userVlue中的一个未正确设置,可能为null。 调试和共享日志。您的部分活动可能因为nullpointexception而被破坏,因此返回到回溯中的主要活动。

我尝试使用示例应用,您的逻辑运行正常。

您正在处理某些UI元素上的用户操作,当您执行findViewById时,cotext就是该UI元素,因此此方法会在其子元素中搜索ImageSuccess。尝试以rootlayout的形式提供页面布局并执行rootlayout.findViewById(&#34; ImageSuccess&#34;);

答案 1 :(得分:0)

我终于找到了解决方案,因为图像只在可绘制文件中出现黑屏,所以我需要在所有drawbridge文件夹中添加图像,例如drawable-ldp,drawable-ldpi等....所以该应用可以使用不同的手机尺寸。