首先写个工具类:

public class ScreenShotTool {

private Activity activity;

public ScreenShotTool(Activity activity) {

this.activity = activity;

}

public Bitmap getActivityBitmap() {

/**取得DecorView,这个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;

/**获取屏幕宽和高*/

int width = activity.getWindowManager().getDefaultDisplay().getWidth();

int height = activity.getWindowManager().getDefaultDisplay().getHeight();

/**保存前去掉标题栏*/

Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);

/**清除缓存*/

view.destroyDrawingCache();

return b;

}

/**保存到本地*/

private void compressBitmap(Bitmap b, File filePath) {

FileOutputStream fos = null;

try {

fos = new FileOutputStream(filePath);

if (null != fos) {

/**对图片进行压缩*/

b.compress(Bitmap.CompressFormat.PNG, 100, fos);

fos.flush();

fos.close();

}

}

catch (Exception e) {

e.printStackTrace();

}

}

public void saveScreenshopBitmap(File filePath) {

if (filePath == null) { return; }

if (!filePath.exists()) {

try {

filePath.createNewFile();

}

catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

compressBitmap(getActivityBitmap(), filePath);

}

}

--------------在activit中使用-----------

public class ScreenShotActivity extends Activity {

private Button saveBtn;

private Activity act;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_photo);

saveBtn=(Button) findViewById(R.id.photo_btn);

act=this;

saveBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

/**保存路径*/

String savePath = Environment.getExternalStorageDirectory()+"/ldm/myImages";

try {

File filePath = new File(savePath);

if(!filePath.exists()){

filePath.mkdirs();

}

/**文件路径*/

String filepath = savePath + "/today.png";

File file = new File(filepath);

if (!file.exists()) {

file.createNewFile();

}

/**把当前Activity截屏,也可以传入其它Activity*/

new ScreenShotTool(act).saveScreenshopBitmap(file);

}catch(Exception e){

e.printStackTrace();

}

}

});

}

}

android手机截屏代码,Android手机截屏代码相关推荐

  1. android录屏弹窗,android视频截屏手机录屏实现代码

    本文介绍了android视频截屏&手机录屏实现代码,分享给大家,希望对大家有帮助 问题 在android中有时候我们需要对屏幕进行截屏操作,单一的截屏操作好解决可以通过activity的顶层v ...

  2. android 手机如何截图,原来安卓手机有这么多种截屏方式 最后两种一般人不会用...

    原标题:原来安卓手机有这么多种截屏方式 最后两种一般人不会用 在这个信息化的时代,智能手机几乎主宰着天下,人人手中一部智能机 .看新闻,听歌曲,打游戏.我们的日常几乎全部由手机霸占着.但截屏作为初级的 ...

  3. 荣耀android手机怎么截图,荣耀30怎么截屏?荣耀30三种截屏方法

    从苹果手机换荣耀30手机,但是不会截屏,想要截屏怎么办呢? 荣耀30三种截屏方法 荣耀30是华为旗下荣耀的一款智能手机,于2020年4月15日发布.不过由苹果转过来的可以通过下面的方法截图. 使用组合 ...

  4. android华为怎么截屏快捷键,华为手机怎么截图?华为手机截图怎么截?截屏快捷键是什么?...

    感动的瞬间有很多,或许是与亲朋好友视频时的搞怪表情,或许是与爱人在微信的一句表白,又或者是公布比赛结果的那一瞬间.一瞬间的感动,一瞬间的开心,一瞬间的惊喜,不管这一瞬间发生了什么,它们都是很容易消逝的 ...

  5. 三星 android截屏快捷键,安卓手机怎么截图 各大品牌快捷键截屏大集合

    1三星手机快捷键截屏操作 同时按住三星手机的home键与电源开关键不动,等待1-2秒,界面就被截屏下来了. 2华为手机快捷键截屏操作 同时按住华为手机音量减键与电源开关键不动,等待1-2秒,界面就被截 ...

  6. android写代码截屏微信,android 模仿微信头像裁剪

    android 在android开发中经常会碰到修改头像的功能需求, 而在修改头像>中最难的部分就是在头像的裁剪功能.虽说网上一大堆裁剪的例子,但最重要的是要理解里面的实现原理,这样以后自己改起 ...

  7. android开发截屏代码,android截屏代码:C++实现

    android截屏代码:C++实现 示例代码在: frameworks\base\services\surfaceflinger\tests\screencap\screencap.cpp /* * ...

  8. android 代码截图 录屏 浮窗,教你怎么录制手机屏幕视频,安卓手机如何录屏

    原标题:教你怎么录制手机屏幕视频,安卓手机如何录屏 有时候我们或多或少会需要录制手机屏幕上的画面,那么我们如何录制手机屏幕视频呢?其实录制手机屏幕视频还是比较容易的,下面小编便来分享下我录制手机屏幕视 ...

  9. Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)

    转自:https://www.jb51.net/article/129633.htm 前言 宽屏适配.禁止截屏和保持屏幕常亮,这三个与屏幕有关的 Android 开发小众知识,说不定什么时候就派上用场 ...

  10. Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏

    Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍照功能 Andro ...

最新文章

  1. (转)如何从storyBoard中加载其中一个controller
  2. JDK 5.0 注解的使用
  3. linux rm命令
  4. ftp列表错误,flashfxp列表错误,ftp无法列目录的解决方法
  5. haproxy+keepalived实现负载均衡及高可用
  6. 【Elasticsearch】zen discovery集群发现机制
  7. Java中的深拷贝(深复制)和浅拷贝(浅复制)
  8. 基于Spring + Spring MVC + Mybatis 高性能web构建
  9. SpringBoot之lombok引入后@Data无法生成getset方法
  10. 电商网站交易记录设计
  11. 7. keras - 模型的保存与载入
  12. 黄绿色——三色配色篇
  13. java事务是什么_在java中,事务是什么?
  14. Chrome 打不开网页,火狐却可以
  15. php frameset不显示,php加载frameset页面时显示空白怎么办_后端开发
  16. 考研词汇 用语言记忆
  17. android mac 照片恢复,照片恢复
  18. 宋君强 学科评估 计算机科学,宋君强
  19. 获得网易云音乐歌曲播放的url
  20. 经典唯美爱情说说语录,句句动人心弦

热门文章

  1. sdut oj 2738 小鑫の日常系列故事(七)——小纸条
  2. d3.js学习笔记(5)drag拖拽操作数据
  3. ECharts设置双x轴
  4. 使用Teamviewer实现远程控制安卓设备的实现过程记录
  5. 网站中CSS是实现什么功能的,什么是CSS,其主要作用是什么
  6. 火山引擎多场景下的云原生技术实践
  7. DAY02 pat乙级刷题(c++代码)
  8. ROS2初学者教程(Dashing和Eloquent)Windows
  9. python 飞机大战爆炸效果_Pygame飞机大战为什么飞机与敌机碰撞后不再有图片动态切换效果...
  10. 清除“我的电脑”地址栏中的记录