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()上设置断点代码>您是否收到异常?不,我没有收到任何异常。您给我的链接包含一些错误,我无法修复。