Android截屏并保存图片到本地

本文提供了一种在安卓设备上进行屏幕截图并将其保存至图片目录的方法。通过使用getWindow().getDecorView()获取当前窗口视图,设置绘制缓存并创建位图。随后,将位图压缩为JPEG格式,并保存到外部存储的Pictures目录下。文章还提醒开发者需添加必要的权限,如WRITE_EXTERNAL_STORAGE,并提供了权限被拒时引导用户开启权限的链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用下面方法即可:

//截取屏幕
public void screenShort() {
    View dView = getWindow().getDecorView();
    dView.setDrawingCacheEnabled(true);
    dView.buildDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(dView.getDrawingCache());
    if (bitmap != null) {
        try {
            saveBitmap(bitmap);
        } catch (Exception e) {
        }
    }
}

//保存图片
private void saveBitmap(Bitmap bmp) throws IOException {
    File childFolder = Environment.getExternalStoragePublicDirectory(Environment
            .DIRECTORY_PICTURES);
    File imageFile = new File(childFolder.getAbsolutePath() + "/" + System.currentTimeMillis
            () + ".jpg");
    OutputStream fOut = new FileOutputStream(imageFile);
    bmp.compress(Bitmap.CompressFormat.JPEG, 60, fOut);//将bg输出至文件
    fOut.flush();
    fOut.close(); // do not forget to close the stream
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile
            (imageFile)));
    ToastUtils.showShort(getString(R.string.success));
}

记得添加权限~~~, 懒得抽出来,全都加上吧

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />

如果拒绝了,下面是提示用户开启权限的文章:

https://blog.youkuaiyun.com/wuqingsen1/article/details/84836679

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值