Android实现截屏

原创 2014年01月17日 20:50:09


我们大家都在用电脑的时候,用过截屏的功能,有的时候截屏给我们带来了很多的方便,那么我们现在怎么样才能在android中实现这个功能那,下面我们就用代码来实现这个对我们很方便的功能。

java代码:

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.view.View; 

 
public class ScreenShot { 

 
// 获取指定Activity的截屏,保存到png文件 
private static Bitmap takeScreenShot(Activity activity){ 

 
//View是你需要截图的View 
View view = activity.getWindow().getDecorView(); 
view.setDrawingCacheEnabled(true); 
view.buildDrawingCache(); 
Bitmap b1 = view.getDrawingCache(); 

 
//获取状态栏高度 
Rect frame = new Rect(); 
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); 
int statusBarHeight = frame.top; 
System.out.println(statusBarHeight); 
 
//获取屏幕长和高 
 int width = activity.getWindowManager().getDefaultDisplay().getWidth(); 
int height = activity.getWindowManager().getDefaultDisplay().getHeight(); 

 
//去掉标题栏 
//Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); 
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); 
view.destroyDrawingCache(); 
return b; 
} 

 
//保存到sdcard 
private static void savePic(Bitmap b,String strFileName){ 
 FileOutputStream fos = null; 
try { 
fos = new FileOutputStream(strFileName); 
if (null != fos) 
{ 
 b.compress(Bitmap.CompressFormat.PNG, 90, fos); 
fos.flush(); 
 fos.close(); 
 } 
} catch (FileNotFoundException e) { 
 e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
 } 

 
//程序入口 
public static void shoot(Activity a){ 
ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png"); 
} 
} 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android完美实现截屏

很多app都有截屏的需求,当你遇到产品经理给你提出这个需求时,你搜索了一下: 1.取View的cacheDrawable 来实现截屏,这种方案,没有兼容性问题,但是缺点有两个: 不能截状态...
  • weizongwei5
  • weizongwei5
  • 2017年01月10日 11:40
  • 14325

android中实现截屏的三种思路

APP截屏功能三种实现思路: 1. 基于Android SDK的截屏方法SimpleDateFormat sdf = new SimpleDateFormat( ...
  • hsk256
  • hsk256
  • 2015年09月26日 16:32
  • 2245

android实现截屏操作

最近开发了一些Android小游戏,想在游戏结束或者完成之后把整个屏幕截取下来并分享到社交平台上。先上效果吧。 网上一搜,截屏的方法很多。这里只贴出了一种,将截取到Bitmap赋给D...
  • Tom_xiaoxie
  • Tom_xiaoxie
  • 2016年06月02日 11:41
  • 951

Android中实现截图的几种方式

一、起始原因 最近项目需求中需要实现屏幕截图,开启了新一轮的翻腾,找寻。是的,我就是一个搬运工,简单的搬运工~~做不完的功能,连接不断地需求~~ 基本需求:实现当前页面截图并保存;...
  • u013205623
  • u013205623
  • 2017年03月08日 15:45
  • 468

Android系统 截屏监听 的 原理与实现

本文链接: http://blog.csdn.net/xietansheng/article/details/52692163 1. 原理 Android系统并没有提供截屏通知相关的API...
  • laowu119119
  • laowu119119
  • 2017年03月01日 18:29
  • 422

Android中使用代码截图的各种方法总结

public class ScreenShot { private BufferedImage image = null; /** * @param args */ public sta...
  • woshinia
  • woshinia
  • 2013年09月10日 11:17
  • 126450

Android 5.0及以上实现屏幕截图

在Android 5.0,API 21 之前想要截图系统屏幕必须Root才能完成,5.0之后开放了接口,下面看我们是怎么实现的。 -- 1. 涉及到的相关类 1. MediaProj...
  • omnispace
  • omnispace
  • 2017年03月09日 18:33
  • 755

【Android】实现截屏功能

1.截屏功能在像QQ等软件中我们有所
  • u010119170
  • u010119170
  • 2014年07月29日 02:22
  • 1301

实现屏幕截图的代码-Android

转自:http://www.eoeandroid.com/thread-95111-1-1.html 今天实现了下屏幕截图 但是方法不是很优雅 还请大牛给予指点 界面很简单: ...
  • duanyipeng
  • duanyipeng
  • 2013年01月19日 19:53
  • 14997

截屏与截长图功能的实现

Demo在GitHub的地址:https://github.com/Hebin320/ScreenShootDemo在CSDN上的下载地址:http://download.csdn.net/detai...
  • Hebin320320
  • Hebin320320
  • 2016年04月14日 15:09
  • 10236
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android实现截屏
举报原因:
原因补充:

(最多只允许输入30个字)