0

我尝试在 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);

谢谢你的帮助。

4

1 回答 1

0

您正在尝试打开一个名为*.png. 这应该是QRCode.png,因此代码

Environment.getExternalStorageDirectory().getAbsolutePath() + "/QRCode.png";
于 2013-05-21T23:56:55.390 回答