android 截屏函数_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 图片横竖判断_Android横竖屏切换及其对应布局加载问题详解
本文为大家分享了Android横竖屏切换及其对应布局加载问题,供大家参考,具体内容如下 第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同 ...
- 清屏函数 mysql_c++清屏函数是什么
c++清屏函数是"system("cls")".system()是一个C/C++的函数,功能是发出一个DOS命令:当该函数的参数为"cls" ...
- android系统息屏设置_Android亮屏和熄屏控制
一. 前言 我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏.那么今天,我们来分析下这方面的功能. 二. 系统服务 --- PowerManager ...
- android系统息屏设置_Android亮屏和熄屏控制实例详解
本文实例讲述了Android亮屏和熄屏控制实现方法.分享给大家供大家参考,具体如下: 一.概述 我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏.那 ...
- android分屏模式_Android分屏模式开发注意事项
Android分屏模式开发注意到主页面在分屏模式下,页面所占比例在增大或者减小的时候都会调用oncreat方法,所以查资料总结一下分屏对页面的生命周期的影响以及开发时的注意事项: App页面从全屏模式 ...
- android分屏模式_Android分屏显示总结
1. 基础原理 1.1 ActivityRecord.TaskRecord.ActivityStack关系 一个ActivityRecord对应着一个Activity,而一个Activity可能对应着 ...
- android 仿微信来电_Android 悬浮窗功能实现(微信语音通话悬浮窗效果实现)
目录 1.基本介绍 2.代码示例 3.实现效果及便捷工具类 4.仿微信语音通话悬浮窗效果实现 4.1 需求分析及效果展示 4.2 实现 5.最后 1.基本介绍 Android 界面绘制都是通过 Win ...
- android绘制环形进度_Android实现环形进度条代码
先上效果图: 自定义控件:AttendanceProgressBar 代码如下: public class AttendanceProgressBar extends View { // 画圆环底部的 ...
- android阅读器长按选择文字功能实现代码
前言: 有时候我们需要实现长按选择文字功能,比如阅读器一般都有这个功能,有时候某个自定义控件上可能就有这种需求,如何实现呢?正好最近还算闲,想完善一下自己写的那个轻量级的txt文件阅读器(比如这个长按 ...
最新文章
- iceberg问题小结
- 带你玩转关键字Synchronized
- 计算机网络实验数据链路层分析,计算机网络第三次实验-数据链路层
- 为什么梯度下降法对于非线性可分数据有效
- android 二次绘制 layout,View的三次measure,两次layout和一次draw
- SpringMVC注解驱动开发
- 设计模式学习笔记------简单工厂
- SVN版本问题:This client is too old to work with working copy 【解决】
- unity脚本生命流程
- js的concat函数、join 、slice函数及二维数组的定义方式
- JIRA中设置[描述]字段的默认值
- 基于四阶累积量的MUSIC算法与MUSIC-like算法(DOA估计)
- linux修音软件下载,修音软件下载 Auto Tune 8(修音工具) v8.1.2 免费安装版 下载-脚本之家...
- 小甲鱼C语言1-22讲笔记(指针和数组)
- 互联网防骗指南[摘录58同城]
- android回传数据实验报告,传热综合实验实验报告.doc
- 软件观念革命:交互设计精髓_UI设计师、交互设计师、产品经理必备软件技能之Sketch...
- 封面文章:寻找技术中国——渴望不再被扼住喉咙!
- 搜索引擎Bing必应高级搜索语法
- 【chrome】chrome百度网盘网页版倍速
热门文章
- dcmtk医学图像处理教程(一)环境配置VS2019+dcmtk3.6.6
- 前端开发中IE6的问题的汇总
- Java类的初始化、变量的初始化
- 一个密码本(ACodebook)介绍
- 1、snaker笔记
- element table 合并单元格错位或单元格后移
- MIT 3.054胞状材料、多孔材料课程笔记-Lecture4:蜂窝材料面内机械性能
- -- str --() 方法
- [Python] Codecombat 攻略 Sarven 沙漠 (1-43关)截止至36关
- 互联网公司有哪些“逼死人”的制度?