我怎样才能改变一个ImageView的图像?

我刚开始学习android。 而我不知道如何更改ImageView ? 即它有一些在布局中设置的图像,但我想通过编码来改变图像,我应该怎么做?

这是xml文件

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#cc8181" > <ImageView android:id="@+id/image" android:layout_width="50dip" android:layout_height="fill_parent" android:src="@drawable/icon" android:layout_marginLeft="3dip" android:scaleType="center"/> 

感谢回复。

如果您使用xml文件创buildimageview,请按照下列步骤操作。

解决scheme1:

第1步:创build一个XML文件

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#cc8181" > <ImageView android:id="@+id/image" android:layout_width="50dip" android:layout_height="fill_parent" android:src="@drawable/icon" android:layout_marginLeft="3dip" android:scaleType="center"/> </LinearLayout> 

第2步:创build一个活动

 ImageView img= (ImageView) findViewById(R.id.image); img.setImageResource(R.drawable.my_image); 

解决scheme2:

如果您是从Java Class创buildimageview的

 ImageView img = new ImageView(this); img.setImageResource(R.drawable.my_image); 

看看ImageView API 。 有几个setImage*方法。 使用哪一个取决于您提供的图像。 如果你有图像作为资源(例如文件res / drawable / my_image.png)

 ImageView img = new ImageView(this); // or (ImageView) findViewById(R.id.myImageView); img.setImageResource(R.drawable.my_image); 

为了进一步了解这个问题,你也可以直接设置一个位图,如下所示:

 ImageView imageView = new ImageView(this); Bitmap bImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.my_image); imageView.setImageBitmap(bImage); 

当然,这个技巧只有在你需要改变图像时才有用。

 if (android.os.Build.VERSION.SDK_INT >= 21) { storeViewHolder.storeNameTextView.setImageDrawable(context.getResources().getDrawable(array[position], context.getTheme())); } else { storeViewHolder.storeNameTextView.setImageDrawable(context.getResources().getDrawable(array[position])); }