我尝试在 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);
谢谢你的帮助。