我刚刚开始学习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"/>
感谢您的回复。
答案 0 :(得分:247)
如果您使用xml文件创建了imageview,请按照以下步骤操作。
解决方案1:
第1步:创建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步:创建活动
ImageView img= (ImageView) findViewById(R.id.image);
img.setImageResource(R.drawable.my_image);
解决方案2:
如果您从Java Class
创建了imageviewImageView img = new ImageView(this);
img.setImageResource(R.drawable.my_image);
答案 1 :(得分:39)
查看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);
答案 2 :(得分:14)
为了更进一步,您还可以直接设置位图,如下所示:
ImageView imageView = new ImageView(this);
Bitmap bImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.my_image);
imageView.setImageBitmap(bImage);
当然,此技术仅在您需要更改图像时才有用。
答案 3 :(得分:3)
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]));
}