Android截屏功能
来源:互联网 发布:数据仓库与数据分析 编辑:程序博客网 时间:2024/05/04 11:35
截取屏幕内容,并且将屏幕分享或者发送是非常常用的功能,本文将会实现截屏功能。截屏并保存成图像文件的基本步骤有:
第一步:获取存储屏幕图像的Bitmap对象。
第二步:获取状态栏高度。由于截屏无法获取状态栏图像,所以必须将状态栏从屏幕图像文件中去除,否则图像上方的状态栏位置会显示出一条白色区域。
第三步:获取屏幕图像高度和宽度。
第四步:建立新的Bitmap对象,将屏幕图像中除了状态栏部分的其他区域复制到该图像中。
第五步:建立新的Bitmap对象保存到SD卡的根目录。
以下是实现代码,整个界面中就一个按钮,它的单击属性设置成:android:onClick=“onClick_captureScreen”,即可,布局文件较简单,就不再列出,下面上主要代码。
package com.test.showsystemwindow;import java.io.File;import java.io.FileOutputStream;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Point;import android.graphics.Rect;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.view.View;import android.widget.Toast;public class CaptureScreenActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClick_captureScreen(View view) {// 本实例使用延时加载,以防止单击按钮时还没有抬起就截屏new Handler().postDelayed(new Runnable() {@Overridepublic void run() {View v = getWindow().getDecorView();// 得到状态栏v.setDrawingCacheEnabled(true);v.buildDrawingCache();// 第一步,获取保存屏幕图像的Bitmap对象Bitmap srcBitmap = v.getDrawingCache();Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);// 第二步,获取状态栏的高度int statusBarHeight = frame.top;// 第三步,获取截屏图像的高度Point outSize = new Point();getWindowManager().getDefaultDisplay().getSize(outSize);int height = outSize.y;int width = outSize.x;// 第四步,创建新的BitMap对象,并截取除了状态栏以外的其他区域Bitmap bitmap = Bitmap.createBitmap(srcBitmap, 0,statusBarHeight, width, height - statusBarHeight);v.destroyDrawingCache();FileOutputStream fos = null;try {// 为了使每次保存图像的文件名不同,这里使用临时文件来生成相应的文件名File file = File.createTempFile("capture", ".jpg",new File(Environment.getExternalStorageDirectory().getAbsolutePath()));fos = new FileOutputStream(file);if (null != fos) {// 第五步,将截屏的图像保存到指定文件中bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);fos.flush();Toast.makeText(CaptureScreenActivity.this,"已经截屏成功,截屏文件名为:" + file.getName(),Toast.LENGTH_LONG).show();}} catch (Exception e) {}}}, 2000);// 延时两秒}}
0 0
- Android截屏功能
- android视图截屏功能
- android截屏功能实现
- android截屏功能实现
- android截屏功能实现
- 【Android】实现截屏功能
- android实现截屏功能
- Android 禁止截屏功能
- Android系统截屏功能提取
- Android系统截屏功能提取
- Android系统截屏功能提取
- android代码实现截屏功能
- Android系统截屏功能提取
- android 应用使用截屏功能
- Android系统截屏功能提取
- Android系统截屏功能提取
- android实现截屏功能代码
- android实现截屏功能代码
- PAT Basic Level 1020. 月饼(25)
- Sublime Text 3技巧:支持GB2312和GBK编码
- $(document).ready(function(){ });
- 使用T-SQL进行SQL数据库的维护
- Cocos2d-x Win7环境编译apk
- Android截屏功能
- win8安装oracle 11g 报错 要求的结果: 5.0,5.1,5.2,6.0 6.1 之一 实际结果: 6.2 .
- 服务器安装ubuntu小记
- Java可以做什么及可以给我们带来什么?
- Ubuntu下搭建FTP服务器
- Web Polygraph 安装
- JS Date
- 商标注册程序
- Gabor滤波小结