21

我想在 imageview 中显示一个图像,所以我创建了一个文件夹 -并将我的图像放在那里drawableres类似的东西apple.png。然后我使用这段代码:

ImageView iv= (ImageView)findViewById(R.id.img_selected_image);
String path = getApplication().getFilesDir().getAbsolutePath();
InputStream is = new FileInputStream(path + "/apple.png");
Drawable icon = new BitmapDrawable(is);
Log.i("Fnord", "width="+icon.getIntrinsicWidth()+
     " height="+icon.getIntrinsicHeight());
iv.setImageDrawable(icon);

但是当我运行它时,它说apple.png. data/data/package-name/files我想我把我的形象放在不合适的地方。我应该把我的形象放在哪里?

4

9 回答 9

77

您可以直接在您的 setimage 中给出图像名称,因为iv.setImageResource(R.drawable.apple);它应该是它。

于 2012-11-22T13:42:01.763 回答
8

使用以下代码,

    iv.setImageResource(getResources().getIdentifier("apple", "drawable", getPackageName()));
于 2012-11-22T13:55:49.417 回答
6

除了在活动类中通过代码设置可绘制资源之外,您还可以在 XML 布局中设置:

代码如下:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/apple" />
于 2016-08-31T05:03:06.433 回答
4
// take variable of imageview

private ImageView mImageView;

//bind imageview with your xml's id

mImageView = (ImageView)findViewById(R.id.mImageView);

//set resource for imageview

mImageView.setImageResource(R.drawable.your_image_name);
于 2013-04-23T09:14:00.897 回答
2

您放入 res/drawable 的图像由 Android 处理。您无需按照您的方式获取图像。在你的情况下,你可以简单地打电话iv.setImageRessource(R.drawable.apple)

要获取图像(而不是直接将其添加到 ImageView),您可以调用Context.getRessources().getDrawable(R.drawable.apple)以获取图像

于 2012-11-22T13:45:22.487 回答
2

如果您想将位图对象设置为图像视图,这里是简单的两行`

Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.sample_drawable_image);
image.setImageBitmap(bitmap);
于 2017-01-03T06:20:10.123 回答
1
        ImageView iv= (ImageView)findViewById(R.id.img_selected_image);
        public static int getDrawable(Context context, String name)//method to get id
        {
         Assert.assertNotNull(context);
         Assert.assertNotNull(name);
        return context.getResources().getIdentifier(name,    //return id
            "your drawable", context.getPackageName());
        }
        image.setImageResource(int Id);//set id using this method
于 2012-11-22T14:00:55.457 回答
1

如果您ImageView从 Java 类创建

ImageView img = new ImageView(this);

//Here we are setting the image in image view
img.setImageResource(R.drawable.my_image);
于 2017-01-03T05:38:00.583 回答
0

1> 您可以从布局本身添加图像:

<ImageView
                android:id="@+id/iv_your_image"
                android:layout_width="wrap_content"
                android:layout_height="25dp"
                android:background="@mipmap/your_image"
                android:padding="2dp" />

或者

2>以编程方式在java类中:

ImageView ivYouImage= (ImageView)findViewById(R.id.iv_your_image);
        ivYouImage.setImageResource(R.mipmap.ic_changeImage);

片段

View rowView= inflater.inflate(R.layout.your_layout, null, true);

ImageView ivYouImage= (ImageView) rowView.findViewById(R.id.iv_your_image);
        ivYouImage.setImageResource(R.mipmap.ic_changeImage);
于 2018-03-13T13:37:15.437 回答