我尝试在imageView中显示我创建的png文件。当我启动程序并单击showCreatedPng按钮时,模拟器屏幕上只有一个白色空白页。
并且logCat说:(也许Logcat因为模拟器而显示错误。我的模拟器有200 mb的SD卡但是,我找不到计算机中创建的PNG的位置。当我启动程序时我的手机,PNG保存在GT-I9100 \ Phone文件夹。我猜文件夹是一个内部文件夹。无论如何,我看不到我创建的png文件。请帮忙。)
05-21 21:53:39.764: E/BitmapFactory(1335): Unable to decode stream: java.io.FileNotFoundException: /mnt/sdcard/*.png: open failed: ENOENT (No such file or directory)
这些是我使用的代码。
保存:
private void saveImageToExternalStorage(Bitmap bitmap) {
String qrPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";
try
{
File dir = new File(qrPath);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream fOut = null;
File file = new File(qrPath, "QRCode.png");
if(file.exists()){
file.delete();
file.createNewFile();
fOut = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
}
}
catch (Exception e) {
Log.e("saveToExternalStorage()", e.getMessage());
}
}
获取png文件的代码:
String qrPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/*.png";
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap mustOpen = BitmapFactory.decodeFile(qrPath, options);
setContentView(R.layout.qr_image);
ImageView imageView = (ImageView) findViewById(R.id.qr_image);
imageView.setImageBitmap(mustOpen);
感谢您的帮助。
答案 0 :(得分:1)
您正在尝试打开名为*.png
的文件。这应该是QRCode.png
,因此代码
Environment.getExternalStorageDirectory().getAbsolutePath() + "/QRCode.png";