从数据库中读取图像路径

时间:2011-08-22 17:47:55

标签: android

我陷入了一些我确定相当容易的事情

我在数据库中有一个字段,我将图像名称存储在其中,例如&images; images / ex1.png'

如何将其读入imageView?我在那里尝试了一些代码,但无法让它工作

一个很好的例子是高度

4 个答案:

答案 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