如何从字符串设置 imageView 的图像? [英] How to set an imageView's image from a string?

查看:16
本文介绍了如何从字符串设置 imageView 的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a list of entries and some bitmap files in the res/drawable-mdpi directory. I'm trying to load the image corresponding to the string value selected from the list by generating a path string and using bitmap factory. The problem is I don't think my path is right because the bitmap is always null, even for the default image.

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);

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

Does the res directory even get copied onto the device? What is the correct path I should be using, or should I be going about this differently?

谢谢

推荐答案

如果您在 drawable 文件夹中有图像,那么您的处理方式是错误的.

if you have the image in the drawable folder you are going about this the wrong way.

尝试这样的事情

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

这篇关于如何从字符串设置 imageView 的图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆