android 怎么获取当前屏幕的截图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 怎么获取当前屏幕的截图相关的知识,希望对你有一定的参考价值。
安卓系统手机操作系统相似,以华为手机为例,以下截屏方法您可以试一下:一、屏幕下拉出现“开关”,点击“截屏”即可截图成功(如默认快捷开关没有截屏选项,需要点击编辑添加后方能使用)。
二、“截图”快捷键:同时按住“音量减”和“电源键”也可以实现截图。
三、通过指关节截屏:
1、截取完整屏幕:亮屏状态下连续敲击屏幕两下待弹窗自动退出即可完成截屏。
2、截取部分屏幕:亮屏状态下连续敲击屏幕两下,弹窗出现三秒内点击编辑,拖拽图片边框即可完成截屏。
3、画字母S滚动截屏:先用指关节敲击一下屏幕,然后不要离开屏幕,直接用指关节画字母S,点击滚动区域后完成截屏。
截屏成功后,图片文件默认保存在手机存储的Pictures/Screenshots文件夹下,也可以通过手机自带的图库查看。 参考技术A 代码如下:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.os.Environment;
import android.util.Log;
import android.view.View;
public class ShotScreen
private static final String TAG="shotscreen";
@SuppressWarnings("unused")
private static Bitmap takeScreenShot(Activity activity)
View view =activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
Rect rect = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
System.out.println(statusBarHeight);
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay().getHeight();
Bitmap bitmap2 = Bitmap.createBitmap(bitmap,0,statusBarHeight, width, height - statusBarHeight);
view.destroyDrawingCache();
return bitmap2;
@SuppressWarnings("unused")
private static void savePic(Bitmap bitmap,String filename)
FileOutputStream fileOutputStream = null;
try
fileOutputStream = new FileOutputStream(filename);
if (fileOutputStream != null)
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
catch (FileNotFoundException e)
Log.d(TAG, "Exception:FileNotFoundException");
e.printStackTrace();
catch (IOException e)
Log.d(TAG, "IOException:IOException");
e.printStackTrace();
public static void shoot(Activity a)
if (android.os.Environment.MEDIA_MOUNTED != "mounted")
ShotScreen.savePic(ShotScreen.takeScreenShot(a), "/sdcard/抽样.png");
else
ShotScreen.savePic(ShotScreen.takeScreenShot(a), "/data/data/"+a.getPackageName()+"/抽样.png");
接着在main.xml中加入一个Button本回答被提问者采纳
android 视频截图
参考技术A 四个方案:1.原生方法,MediaMetadataRetriever
mp4没问题,但对切片类不行
2.ffmpeg等第三方库
全支持,但集成比较麻烦,而且体积也比较大
3.通过MediaProjectionManager录制屏幕获取帧来截图
这个截的是全屏,如果需要去边缘之类的可以直接处理bitmap
相关可以参考: https://github.com/c2hw/screenshot
以上是关于android 怎么获取当前屏幕的截图的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio错误尝试获取屏幕截图:“从设备获取屏幕截图时出现意外错误:EOF”
如何以编程方式获取 android 设备屏幕截图? [复制]