android中怎么用代码实现截屏
3个回答
2020-04-30 · 用心坚持专业,真诚与您相伴
中国移动10086
目前是全球网络规模最大、客户数量最多、盈利能力和品牌价值领先、市值排名位居前列的电信运营企业,为客户提供更加高效、更实惠、更安全、更便捷的服务,全面落实“客户为根、服务为本”的服务理念。
向TA提问
关注
展开全部
安卓系统手机操作系统相似,以华为手机为例,以下截屏方法您可以试一下:
一、屏幕下拉出现“开关”,点击“截屏”即可截图成功(如默认快捷开关没有截屏选项,需要点击编辑添加后方能使用)。
二、“截图”快捷键:同时按住“音量减”和“电源键”也可以实现截图。
三、通过指关节截屏:
1、截取完整屏幕:亮屏状态下连续敲击屏幕两下待弹窗自动退出即可完成截屏。
2、截取部分屏幕:亮屏状态下连续敲击屏幕两下,弹窗出现三秒内点击编辑,拖拽图片边框即可完成截屏。
3、画字母S滚动截屏:先用指关节敲击一下屏幕,然后不要离开屏幕,直接用指关节画字母S,点击滚动区域后完成截屏。
截屏成功后,图片文件默认保存在手机存储的Pictures/Screenshots文件夹下,也可以通过手机自带的图库查看。
一、屏幕下拉出现“开关”,点击“截屏”即可截图成功(如默认快捷开关没有截屏选项,需要点击编辑添加后方能使用)。
二、“截图”快捷键:同时按住“音量减”和“电源键”也可以实现截图。
三、通过指关节截屏:
1、截取完整屏幕:亮屏状态下连续敲击屏幕两下待弹窗自动退出即可完成截屏。
2、截取部分屏幕:亮屏状态下连续敲击屏幕两下,弹窗出现三秒内点击编辑,拖拽图片边框即可完成截屏。
3、画字母S滚动截屏:先用指关节敲击一下屏幕,然后不要离开屏幕,直接用指关节画字母S,点击滚动区域后完成截屏。
截屏成功后,图片文件默认保存在手机存储的Pictures/Screenshots文件夹下,也可以通过手机自带的图库查看。
2015-11-22 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
如果实现对当前Activity进行截屏,可以用以下方法
public static Bitmap captureScreen(Activity activity) {
activity.getWindow().getDecorView().setDrawingCacheEnabled(true);
Bitmap bmp=getWindow().getDecorView().getDrawingCache();
return bmp;
}
截取webView快照(webView加载的整个内容的大小,用以下方法
public static Bitmap captureWebView(WebView webView) {
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),
snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
如果想截取软件外的界面,手机必须Root才可以,用FrameBuffer中获取
Android屏幕截图
public static Bitmap captureScreen(Activity activity) {
// 获取屏幕大小:
DisplayMetrics metrics = new DisplayMetrics();
WindowManager WM = (WindowManager) activity
.getSystemService(Context.WINDOW_SERVICE);
Display display = WM.getDefaultDisplay();
display.getMetrics(metrics);
int height = metrics.heightPixels; // 屏幕高
int width = metrics.widthPixels; // 屏幕的宽
// 获取显示方式
int pixelformat = display.getPixelFormat();
PixelFormat localPixelFormat1 = new PixelFormat();
PixelFormat.getPixelFormatInfo(pixelformat, localPixelFormat1);
int deepth = localPixelFormat1.bytesPerPixel;// 位深
byte[] piex = new byte[height * width * deepth];
try {
Runtime.getRuntime().exec(
new String[] { “/system/bin/su”, “-c”,
“chmod 777 /dev/graphics/fb0″ });
} catch (IOException e) {
e.printStackTrace();
}
try {
// 获取fb0数据输入流
InputStream stream = new FileInputStream(new File(
“/dev/graphics/fb0″));
DataInputStream dStream = new DataInputStream(stream);
dStream.readFully(piex);
} catch (Exception e) {
e.printStackTrace();
}
// 保存图片
int[] colors = new int[height * width];
for (int m = 0; m < colors.length; m++) {
int r = (piex[m * 4] & 0xFF);
int g = (piex[m * 4 + 1] & 0xFF);
int b = (piex[m * 4 + 2] & 0xFF);
int a = (piex[m * 4 + 3] & 0xFF);
colors[m] = (a << 24) + (r << 16) + (g << 8) + b;
}
// piex生成Bitmap
Bitmap bitmap = Bitmap.createBitmap(colors, width, height,
Bitmap.Config.ARGB_8888);
return bitmap;
}
记得在AndroidManifest.xml加上两行权限:
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.READ_FRAME_BUFFER” />
public static Bitmap captureScreen(Activity activity) {
activity.getWindow().getDecorView().setDrawingCacheEnabled(true);
Bitmap bmp=getWindow().getDecorView().getDrawingCache();
return bmp;
}
截取webView快照(webView加载的整个内容的大小,用以下方法
public static Bitmap captureWebView(WebView webView) {
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),
snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
如果想截取软件外的界面,手机必须Root才可以,用FrameBuffer中获取
Android屏幕截图
public static Bitmap captureScreen(Activity activity) {
// 获取屏幕大小:
DisplayMetrics metrics = new DisplayMetrics();
WindowManager WM = (WindowManager) activity
.getSystemService(Context.WINDOW_SERVICE);
Display display = WM.getDefaultDisplay();
display.getMetrics(metrics);
int height = metrics.heightPixels; // 屏幕高
int width = metrics.widthPixels; // 屏幕的宽
// 获取显示方式
int pixelformat = display.getPixelFormat();
PixelFormat localPixelFormat1 = new PixelFormat();
PixelFormat.getPixelFormatInfo(pixelformat, localPixelFormat1);
int deepth = localPixelFormat1.bytesPerPixel;// 位深
byte[] piex = new byte[height * width * deepth];
try {
Runtime.getRuntime().exec(
new String[] { “/system/bin/su”, “-c”,
“chmod 777 /dev/graphics/fb0″ });
} catch (IOException e) {
e.printStackTrace();
}
try {
// 获取fb0数据输入流
InputStream stream = new FileInputStream(new File(
“/dev/graphics/fb0″));
DataInputStream dStream = new DataInputStream(stream);
dStream.readFully(piex);
} catch (Exception e) {
e.printStackTrace();
}
// 保存图片
int[] colors = new int[height * width];
for (int m = 0; m < colors.length; m++) {
int r = (piex[m * 4] & 0xFF);
int g = (piex[m * 4 + 1] & 0xFF);
int b = (piex[m * 4 + 2] & 0xFF);
int a = (piex[m * 4 + 3] & 0xFF);
colors[m] = (a << 24) + (r << 16) + (g << 8) + b;
}
// piex生成Bitmap
Bitmap bitmap = Bitmap.createBitmap(colors, width, height,
Bitmap.Config.ARGB_8888);
return bitmap;
}
记得在AndroidManifest.xml加上两行权限:
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.READ_FRAME_BUFFER” />
- 官方电话
-
官方服务
- 官方网站
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询