我陷入了一些我确定相当容易的事情
我在数据库中有一个字段,我将图像名称存储在其中,例如&images; images / ex1.png'
如何将其读入imageView?我在那里尝试了一些代码,但无法让它工作
一个很好的例子是高度
答案 0 :(得分:0)
myImageView.setImageBitmap(BitmapFactory.decodeFile(myFilePathString));
您的问题是您的文件路径不包含设备文件系统的根目录。您必须将其添加到文件路径字符串的开头。这取决于您保存图像的方式。所以......
获取SD卡上文件的相应文件路径:
File sdCard = Environment.getExternalStorageDirectory();
String filePath = sdCard.getAbsolutePath() + imageFilePath;
如果您要将图像保存到内部存储器,则会自动为您的应用程序提供一个文件夹以保存文件,并且它们将位于此处。要查找该路径的根,请使用getFilesDir()。有关数据存储的更多信息,请查看http://developer.android.com/guide/topics/data/data-storage.html。
答案 1 :(得分:0)
您无法将图像文件直接设置为ImageView的资源(仅获取资源ID)。 相反,您必须使用BitmapFactory对其进行解码,然后使用setImageBitmap
编辑:
您的问题是您无法使用代码中的资源ID映射图像文件的名称。更简单的方法可能是您将地图表放在一起。 首先将您的图像文件放在drawable文件夹(res / drawable / ex1.png ...)中,然后在代码中执行以下操作:
Map map = new HashMap();
// Add key/value pairs to the map
map.put("images/ex1.png", new Integer(R.drawable.ex1));
map.put("images/ex2.png", new Integer(R.drawable.ex2));
// do that for all the images....
String image_name = // query to your database
ImageView the_image_to_change = // findViewById(...)
if (map.containsKey(image_name)) {
the_image_to_change.setImageResource((Integer)(map.get(image_name)).intValue()); // not sure so much is necessary...
}
答案 2 :(得分:0)
如果您将其存储在/ res /文件夹中,则需要使用ContentProvider才能访问此资源。除非您从应用程序外部下载资源,否则不应直接访问资源。
希望这有帮助。
答案 3 :(得分:0)
使用res / drawable文件夹。以下是如何将图像从drawable加载到Bitmap。
Bitmap myImage = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image);
有关资源的更多信息:http://developer.android.com/guide/topics/resources/providing-resources.html