通过编程方式在android中截取屏幕截图的问题

时间:2011-09-26 08:41:30

标签: android android-sdcard android-image

在我的应用程序中,我正在截取当前屏幕的截图并将其保存在SD卡中。但是如果截图没有保存在SD卡中。如何拍摄屏幕截图并将捕获的屏幕截图作为附件发送到电子邮件中。请帮帮我。

我的编码:

            View v1 = view.getRootView();
            v1.setDrawingCacheEnabled(true);
            Bitmap bm = v1.getDrawingCache();
            try 
            {
                   System.out.println("path "+Environment.getExternalStorageDirectory());
                   FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/ff");
                   bm.compress(CompressFormat.PNG, 90, out);
            }
            catch (Exception e) 
            {
                   e.printStackTrace();
            }

            Intent emailIntent = new Intent(Intent.ACTION_SEND); 
            Uri U=Uri.parse("file:///sdcard/ff");
            emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "aabc@gmail.com" });
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, " from ..");
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "from the app");
            emailIntent.setType("image/png");
//          emailIntent.putExtra(android.content.Intent.EXTRA_STREAM,U);
            emailIntent.putExtra(Intent.EXTRA_STREAM, U);
            startActivity(Intent.createChooser(emailIntent, "")); 

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我通过替换

编写的try子句解决了我的问题
            File file = new File(Environment.getExternalStorageDirectory()+"/filmfestival.png");
            try 
            {
                file.createNewFile();
                FileOutputStream ostream = new FileOutputStream(file);
                bitmap.compress(CompressFormat.PNG, 100, ostream);
                ostream.close();
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }