如何从字符串中设置imageView的图像?

Mat*_*att 31 android bitmap imageview

我在res/drawable-mdpi目录中有一个条目列表和一些位图文件.我正在尝试通过生成路径字符串并使用位图工厂来加载与从列表中选择的字符串值对应的图像.问题是我不认为我的路径是正确的,因为位图始终为空,即使对于默认图像也是如此.

String name = entries.get(position);
            String img = "res/drawable/logo_" + name.toLowerCase() + ".png"; // create the file name
            icon.setScaleType(ImageView.ScaleType.CENTER_CROP);

            // check to see if the file exists
            File file = new File(img);
            if (file.exists()){

                bm = BitmapFactory.decodeFile(img);
            }
            else{// use the default icon
                bm = BitmapFactory.decodeFile("logo_default.png");
            }

            // set the image and text
            icon.setImageBitmap(bm);
Run Code Online (Sandbox Code Playgroud)

res目录是否会被复制到设备上?我应该使用的正确路径是什么,或者我应该以不同的方式进行此操作?

谢谢

lon*_*dsi 50

如果您在drawable文件夹中有图像,那么您将采用错误的方式.

尝试这样的事情

Resources res = getResources();
String mDrawableName = "logo_default";
int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName());
Drawable drawable = res.getDrawable(resID );
icon.setImageDrawable(drawable );
Run Code Online (Sandbox Code Playgroud)

  • `getDrawable()`被删除了. (2认同)

Jib*_*ran 18

不需要使用getDrawable()就可以直接使用资源id

__PRE__