Android 在辅助存储中获取图像

Android get image in secondary storage

我正在尝试从 phone 的辅助存储中获取图像。

public void downloadImage(View v) {

    Bitmap myImage = GetImageBitmapFromUrl();
    String path = System.getenv("SECONDARY_STORAGE") + "/";
    OutputStream out = null;
    try 
    {
        File file = new File(path, "nameImage.jpg");
        out = new FileOutputStream(file);
        myImage.compress(Bitmap.CompressFormat.JPEG, 85, out);
        out.flush();
        out.close();
     } 
    catch (Exception e)
    {    
    }
}

当我 运行 进行调试时为什么会出现此错误并且它也没有收到文件。

错误发生在:

myImage.compress(Bitmap.CompressFormat.JPEG, 85, out);

在清单文件中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
String photoPath = Environment.getExternalStorageDirectory()+"/photo.jpg";

并使用下面的代码获取位图。 photo.jpg是你要阅读的图片名称。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);

你也可以使用毕加索图片库

Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);