Android實現截屏并保存在相冊的功能

代碼實現
  • 添加權限(AndroidManifest.xml文件里)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • 實現截屏(Java代碼)
/**
 * Created by 周旭 on 2017/4/11.
 * 截屏工具類
 */

public class ScreenShotUtils {
    public static boolean shotScreen(Activity activity) {

        String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "dearxy";
        File appDir = new File(storePath);
        if (!appDir.exists()) {
            appDir.mkdir();
        }
        String fileName = System.currentTimeMillis() + ".jpg";
        File file = new File(appDir, fileName);

        //獲取屏幕截圖
        View view = activity.getWindow().getDecorView();
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();
        try {
            FileOutputStream fos = new FileOutputStream(file);
            //通過io流的方式來壓縮保存圖片
            boolean isSuccess = bitmap.compress(Bitmap.CompressFormat.PNG, 80, fos);
            fos.flush();
            fos.close();

            //保存圖片后發送廣播通知更新數據庫
            Uri uri = Uri.fromFile(file);
            activity.getApplicationContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));

            if (isSuccess) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,251評論 4 61
  • 1 經常運動的人的食欲會更好,睡眠也更香,工作更有效率,對同事和家人也往往更有耐心。 運動就是一...
    潤一粟閱讀 278評論 0 0
  • 自制力非常差,是我的一大缺點。 其實,也很想不明白,明明知道自己的缺點所在,為什么就是不能改正。 我想,最大的原因...
    向著太陽奔跑的石頭閱讀 144評論 0 0
  • 空氣中有什么東西在發酵。 如果想要避免預想出的結果, 那就把東西碾落于源頭吧。 已經發生的, 已經發生了。 那么沒...
    心里藏著一座城閱讀 136評論 0 0