android开发截屏代码,android截屏代码:C++实现
android截屏代码:C++实现 示例代码在:
frameworks\base\services\surfaceflinger\tests\screencap\screencap.cpp
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include
#include
#include
#include
#include
#include
#include
#include
using namespace android;
int main(int argc, char** argv)
{
if (argc != 2) {
printf("usage: %s path\n", argv[0]);
exit(0);
}
const String16 name("SurfaceFlinger");
sp composer;
getService(name, &composer);
getService(name, &composer);
sp heap;
uint32_t w, h;
PixelFormat f;
status_t err = composer->captureScreen(0, &heap, &w, &h, &f, 0, 0);
if (err != NO_ERROR) {
fprintf(stderr, "screen capture failed: %s\n", strerror(-err));
exit(0);
}
printf("screen capture success: w=%u, h=%u, pixels=%p\n",
w, h, heap->getBase());
printf("saving file as PNG in %s ...\n", argv[1]);
SkBitmap b;
b.setConfig(SkBitmap::kARGB_8888_Config, w, h);
b.setPixels(heap->getBase());
SkImageEncoder::EncodeFile(argv[1], b,
SkImageEncoder::kPNG_Type, SkImageEncoder::kDefaultQuality);
return 0;
}
编译后生成/system/bin/test-screencap
测试时终端输入test-screencap /mnt/sdcard/scapxx.png
可以看到SD卡生成截屏文件scapxx.png,默认大小为屏幕分辨率
如果想把这个功能写到自己的应用里
写个JNI,参考上面代码即可,但记得权限声明
/>
当然最好是系统级实现,响应某个组合键来截屏,像Android4.0
android开发截屏代码,android截屏代码:C++实现相关推荐
- android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...
本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1 Android Studio配置 2.1.1 ...
- Android开发介绍(基于Android Studio软件)
Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...
- Android开发之在软件内录屏录画面,直接CV就能用
关于Android开发录屏的资料,真的是很难找到那种拿来就能用的,不是付费专栏就是要积分才能下载源码,起不到任何帮助.我需要的是录制软件画面,找到的几个例子都是录制时返回桌面,然后弹出小窗口开始录制桌 ...
- android进度条课设报告,Android开发之进度条ProgressBar的示例代码
说明 ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等. 默认形式ProgressBar 默认方式下,ProgressBar显示为圆形进度,循环转圈,不显示具 ...
- android开发分享到微信,Android开发之微信分享到好友,朋友圈(示例代码)
3. 快速集成 第二步:配置AndroidManifest.xml 下面清单文件的配置是全部的,没有的平台就是不需要配置 1.添加权限 2.添加activity信息 (注意: tencent后面的ap ...
- 开发实践 | Android开发Zegbee 温度、气体采集系统(代码类)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 package com.socke ...
- Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)
一.引言 本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于Intelli ...
- Android开发之获取常用android设备参数信息
如下图: 查看工具类:下载apk的方法缺少xutils库,可以自己添加xutils库 package com.mchsdk.paysdk.utils;import android.Manifest; ...
- 国内android开发之墙痛,Android面试题-机型适配之痛,例如三星、小米、华为、魅族等。...
自定义控件 联网 工具 数据库 源码分析相关面试题 Activity相关面试题 Service相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试 ...
- Android开发技巧!高级Android晋升之View渲染机制,Android篇
前言 众所周知,Xamarin应该是.net下的跨平台开发工具.2016年之前还处于收费状态,后被微软收购后开源.但似乎有个现象,开源后的Xamarin发展似乎有些停滞,而且维护Xamarin的团队又 ...
最新文章
- Docker用Commit给容器做快照
- python三:if...else
- [机器学习收藏] TensorFlow初学者必须了解的55个经典案例
- python相对路径下的shell_shell,python获取当前路径(脚本的当前路径) (aso项目记录)...
- HTML animate()动画更改多个元素背景颜色但不同时生效问题
- python 输出纯音频_Python如何录制系统音频(扬声器的输出)?
- 网页嵌入对象(图片、视频、网页)
- Vue+ElementUI项目使用webpack输出MPA【华为云分享】
- Hadoop 1.x和Hadoop 2.x,Hadoop 1.x局限性和Hadoop 2.x YARN优点之间的区别
- React:组件的生命周期
- 页面响应式布局时,网页图片不缩放
- 设计模式(6)——命令模式
- Retina 显示屏
- 服务器 多显卡 显示器,一台主机接多个显示器,居然有三种方法实现,提高工作效率的神器...
- xavier / acts-as-tree-with-dotted-ids
- html ul怎么去掉内边距,ul默认有内边距
- servlet的认识和了解(3)
- Spark 和 Python.sklearn:使用随机森林计算 feature_importance 特征重要性
- 数据挖掘知识点整理(期末复习版)
- 第十六章 - 垃圾回收相关概念