0

我正在使用 android.given 中的 OpenGl Es 对图像产生影响,当我将图像保存在 sdcard 中时,它显示黑色图像。我如何解决这个问题。

文件缓存目录;Toast.makeText(ImageProcessingActivity.this, "照片", 500).show();

                 Bitmap icon;
                 frame.setDrawingCacheEnabled(true);

                 icon = Bitmap.createBitmap(frame.getDrawingCache());
                 Bitmap bitmap = icon;
                 frame.setDrawingCacheEnabled(false);
                 // File mFile1 = Environment.getExternalStorageDirectory();
                 Date d = new Date();
                 String fileName = d.getTime() + "mg1.jpg";

                 File storagePath = (Environment.getExternalStorageDirectory());
                 File dest = new File(storagePath + "/CityAppImages");

                 if (!dest.exists()) {
                 dest.mkdirs();

                 }

                 File mFile2 = new File(dest, fileName);
                 sdpath = mFile2.getAbsolutePath();

                 Log.d("qqqqqqqqqqqqqqqqqqqqqqq", "zzzzzzzz" + sdpath);
                 try {
                 FileOutputStream outStream;

                 outStream = new FileOutputStream(mFile2);

                 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);

                 outStream.flush();

                 outStream.close();
                 Toast.makeText(ImageProcessingActivity.this, "Photo Saved Sucessfully", 500)
                 .show();
                 image.setImageBitmap(bitmap);
                 } catch (FileNotFoundException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 } catch (IOException e) {

                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 Toast.makeText(ImageProcessingActivity.this, "Photo Not Saved Sucessfully",500).show();
                 }
4

1 回答 1

0

我曾经遇到过这个问题,这是因为 getDrawingCache 不是应该的。问题不在于储蓄,而在于你做事的方式。

据我了解,您想捕获应用程序的屏幕,但这非常棘手,可能会导致很多问题。

阅读这个主题,因为当我遇到这个问题时它帮助了我很多。 如何以编程方式在 Android 中截取屏幕截图?

编辑:另外,因为您正在使用 GLES 然后打印屏幕,您应该转到设置 > 开发人员选项 > 选中禁用硬件覆盖并强制 GPU 渲染。

于 2013-09-05T08:17:27.403 回答