Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 位图在保存到存储器时变为黑色_Android_Bitmap_Bitmapfactory_Android Bitmap - Fatal编程技术网

Android 位图在保存到存储器时变为黑色

Android 位图在保存到存储器时变为黑色,android,bitmap,bitmapfactory,android-bitmap,Android,Bitmap,Bitmapfactory,Android Bitmap,每次我试图保存图像时,它都会变成黑色,我不知道它出了什么问题 这是我的相关代码,请看一下 private void SaveImage(Bitmap bitmap) { String fname = "image.png"; ContextWrapper cw = new ContextWrapper(getApplicationContext()); File directory = cw.getDir("imageDir", Context.MODE_PRIVATE

每次我试图保存图像时,它都会变成黑色,我不知道它出了什么问题

这是我的相关代码,请看一下

private void SaveImage(Bitmap bitmap) {
    String fname = "image.png";

    ContextWrapper cw = new ContextWrapper(getApplicationContext());
    File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
    File mypath = new File(directory, fname);

    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(mypath);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我认为这是由于图像的透明度,您尝试更改图片的格式或更改位图的alpha值。
您可以参考以下内容:

最后我自己修复了它

如果您使用内部存储并设置
Context.MODE_PRIVATE
,当我尝试使用我的文件资源管理器打开它时,即使您拥有超级用户访问权限,它也会显示黑屏

所以我所做的就是通过应用程序用这行代码访问文件

ContextWrapper cw = new ContextWrapper(getApplicationContext());
ImageView image = (ImageView) findViewById(R.id.ivImage);
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
try {
    File f = new File(directory, "image.png");
    Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
    image.setImageBitmap(b);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

e.printStackTrace()上设置断点您是否收到异常?不,我没有收到任何异常。您给我的链接包含一些错误,我无法修复。