如何从照片库访问数据?

时间:2018-06-14 22:29:55

标签: java android android-storage

说我在app资源文件夹中有一个图片文件ball.jpg,传递给一个带位图的函数:

Bitmap textureBitmap = BitmapFactory.
  decodeStream(context.getAssets().open("ball.jpg"));

我在手机图库中也有一个图片文件doll.jpg,使用下面相同的方法会导致错误:

Bitmap textureBitmap = BitmapFactory.decodeStream(context.getAssets().
  open("storage/emulated/0/DCIM/Camera/doll.jpg"));

应该调用什么函数来访问手机相册中的图像文件?即我想拥有相同的服务,无论图片文件在我的应用程序中的哪个位置或手机存储空间都可以使用。

1 个答案:

答案 0 :(得分:0)

资产文件夹与本地存储之间存在许多差异。如果您想在手机存储中加载任何照片,您应该使用其他方法(不能使用context.getAssets())。

例如:

private void loadImageFromStorage(String path)
{
    try {
        File file = new File(path, "doll.jpg");
        Bitmap textureBitmap = BitmapFactory.decodeStream(new FileInputStream(file));
    } 
    catch (FileNotFoundException e) 
    {
        e.printStackTrace();
    }
}