android中截屏功能实现,android代码实现截屏功能
android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏!
原始界面
截屏得到的图片
代码实现
1. 添加权限(AndroidManifest.xml文件里)
2. 添加1个Button(activity_main.xml文件)
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Screenshot"
/>
3. 实现截屏(MainActivity.java文件)
package com.example.androidtest;
import java.io.File;
import java.io.FileOutputStream;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) this.findViewById(R.id.btn_save);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
screenshot();
}
});
}
private void screenshot()
{
// 获取屏幕
View dView = getWindow().getDecorView();
dView.setDrawingCacheEnabled(true);
dView.buildDrawingCache();
Bitmap bmp = dView.getDrawingCache();
if (bmp != null)
{
try {
// 获取内置SD卡路径
String sdCardPath = Environment.getExternalStorageDirectory().getPath();
// 图片文件路径
String filePath = sdCardPath + File.separator + "screenshot.png";
File file = new File(filePath);
FileOutputStream os = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
} catch (Exception e) {
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
android中截屏功能实现,android代码实现截屏功能相关推荐
- 求android 中串口的发送接收数据代码
RT,求高手帮忙! 就是 /dev/ttyS0 和/dev/ttyS1 两个设备的通信问题.. 同求~ 这个是不是需要串口驱动啊?最近正在搞这个串口通信的案子,头疼 同样也没有搞出来,老是报:不能扫描 ...
- android 方形按钮代码,Android中实现图文并茂的按钮实例代码
效果图如下所示: 代码: android:orientation="horizontal" android:layout_width="match_parent" ...
- 软件android_id,Android中@id和@+id及@android:id的区别介绍
前言 昨天突然有新来的同事问我这个@id 和@+id 的区别 ,为什么 我们的项目都是@id 自己新增的ui 使用的@+id 这里说下我的简单的回复项目是维护的之前的是为了统一管理使用了@id 方便 ...
- 【Android】Android中使用JNI调用底层C++代码
Android NDK是一系列工具的集合.帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.NDK集成了交叉编译器,并提供了相应的mk文件隔离平台.CPU.API ...
- Android中图像变换Matrix的原理、代码验证和应用(一)
第一部分 Matrix的数学原理 在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类.Android中的Matrix是一个3 x 3的矩阵,其内容如下: Matri ...
- android中翻页控件,Android GridView控件分页自定义
上一篇:Android GridView控件自定义中,我们自定义了Android GridView控件. 包名解释: com.yaomei.activity.adapter DEMO使用到的自定义 ...
- android中保存多行数据,Android使用SQLite数据库存数数据
Android使用SQLite数据库存数数据 前面我们介绍了用 SharedPreferences 和文件存储信息的方法,但是当频繁大量地使用数据存储时,就要用到数据库来管理信息数据. 在 Andro ...
- android中应用程序生命周期,Android应用程序生命周期中的活动和图标
面向大众的移动技术,第3部分 为您的Android移动应用程序添加导航样式 安德鲁·格洛弗 2013年7月25日发布 面向大众的移动技术 请期待本系列的后续内容. 请期待本系列的后续内容. 近年来,移 ...
- 如何在android中设置背景,如何在Android中以编程方式设置背景可绘制
MMTTMM layout.setBackgroundResource(R.drawable.ready);是正确的.实现它的另一种方法是使用以下方法:final int sdk = android. ...
- android中handler机制,如何使用?,Android中的Handler机制
一.Handler概述 二.Handler发送消息的方法 三.MessageQueue的enqueueMessage() 四.Message的when字段 五.子线程中使用Handler 六.Loop ...
最新文章
- 嘈杂场景语音识别准确率怎么提?脸书:看嘴唇
- [置顶] 贝叶斯分类(一)
- delphi的几个特别关键字 object absolute
- 使用通用mapper实现条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了...
- css hack的使用
- 五、stdout,stdoin和stderr
- [转载] 用python统计中文字符数_使用Python统计字符串中各种字符的个数
- mysql查询一个表有哪些索引_如何查看某张数据库表上都有哪些索引(转)
- [转载]强大的grep用法详解:grep与正则表达式
- python 拼音输入法_用Python从头开始实现一个中文拼音输入法?
- PHP计算字符串长度
- TIFF图像文件格式详解——转载
- php 日期转换为大写
- 小程序中将lees转成wxss
- 如何区分单色LCD液晶屏的显示模式和玻璃型号
- python微博爬虫实战_爬虫实战(一):爬取微博用户信息
- Java工程师学习指南(2019最新版)
- 蓝桥杯 逗志芃的危机
- git commit 遇到 “#modified: xxx/xxx (modified content)”问题的解决
- 基于python实现高分二号遥感影像水体提取与水质反演(黑臭水体与水体富营养化)