安卓开发如何实现截图功能
❶ android如何截屏,需要截外部应用的屏幕
如android手机需要截外部应用的屏幕,可通过以下步骤进行截屏:
1、同时按住android手机的电源键和音量减键;
2、点击手机的设置,找到通知栏或直接在下拉菜单里面设置,使截屏工具内置在下拉菜单当中,可通过下拉菜单的快捷开关按钮实现截屏;
3、借助第三方APP截屏,利用手机QQ摇一摇截屏功能,或借助手机类助手;
4、因手机品牌型号存在差异,建议可详细查看手机说明书或联系手机售后核实。
百倍用心,10分满意
❷ 安卓截屏命令
在安卓开发中, 我们很多时候都要用到截屏这个功能。
有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine等Bug跟踪系统中上传截图), 有时是为了发布应用时要用的截图。
今天就来聊聊如何快速只用一句简单的命令就搞定截图。
由繁到简的演进:三种方法
这篇主要讲Linux系统下如何Android手机截屏(当然了,Windows下也类似,可以自行尝试):
首先你的Linux中要安装了adb(也就是Android Debug Bridge,可以在你下载的Android的SDK的platform-tools文件夹中找到,只要把路径加入PATH环境变量就可以)。
而且你的Android手机须要开启了Develop options (开发者选项,要开启好像一般是在Settings(设置)里的About device(关于本机)中按7次Build number那个地方),如下:
那么截屏有哪几种方式呢?应该有很多,这里提供由繁到简的三种方法,也记录了小编从事Android开发之后的截屏方法的“演进”。哈哈,以前是挺蠢萌的(话外音:小编你只有蠢,没有萌,好不...):
1. 手动+adb命令
用你的手机的组合键来截屏(一般是同时按下Home键和电源键),然后用adb pull来取回本地:
adb pull /手机的截屏图片保存路径/xxx.png
2. 纯adb命令
1.使用screencap这个命令,配合adb命令来实现截图并保存到手机的/sdcard目录中:
adb shell screencap -p /sdcard/hello.png
2.用adb pull将手机中的文件取回本地:
adb pull /sdcard/hello.png
成功运行上面两行命令之后,你的家目录~中就会多出一个hello.png的图片。
当然了,截图时注意不要锁屏,不然截出来就是黑屏。
3. Shell函数+命令
第二种用adb命令的方式已经比较简单快捷了。但是,作为程序员,难道每次截屏都要输入这两个命令吗?简直不能忍。
程序员要学会“偷懒”
一般Ubuntu(或其他Linux发行版,例如Fedora)中默认的Shell程序是Bash。因此我们其实可以在.bashrc中写一个函数:
1.用你惯用的文本编辑器打开.bashrc
❸ 安卓手机如何截屏幕截图
安卓手机的话 你要快捷键也可以啊 快捷键的话 营业额电源键往那个音量下键 同时按的话就可以截屏 要不就把那个下拉菜单拉下来 那里面也有个那个截屏的那个菜单的那个剪刀 你点一下就可以截屏了呗
反正华为的话 你再截图屏幕的一那个书晓的那个图的一瞬间就点那个小图的话 他马上就会结出那个全屏的 它还会滚动截屏的
❹ 如何在Android里面使用代码截屏
回答:Android SDK的截屏
方法步骤:如下
方法一:
(1)主要就是利用SDK提供的View.getDrawingCache()方法。网上已经有很多的实例了。首先创建一个android project,然后进行Layout,画一个按键
HelloAndroid.java实现代码为:packagecom.example.helloandroid;
这个代码会在按下app中按键的时候自动在手机的/sdcard/目录下生成一个时间戳命名的png截屏文件。
这种截屏有一个问题,就是只能截到一部分,比如电池指示部分就截不出来了。
(2)在APK中调用“adb shell screencap -pfilepath” 命令
该命令读取系统的framebuffer,需要获得系统权限:
(1). 在AndroidManifest.xml文件中添加
(3).利用系统的API,实现Screenshot,这部分代码是系统隐藏的,需要在源码下编译,
1).修改Android.mk, 添加系统权限
LOCAL_CERTIFICATE := platform
2).修改AndroidManifest.xml 文件,添加
权限
方法二:
Android ddmlib进行截屏
Android本地编程(Native Programming)读取framebuffer
(1)命令行,框架的截屏功能是通过framebuffer来实现的,所以我们先来介绍一下framebuffer。
Linux FrameBuffer 本质上只是提供了对图形设备的硬件抽象,在开发者看来,FrameBuffer 是一块显示缓存,往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。所以说FrameBuffer就是一块白板。例如对于初始化为16 位色的FrameBuffer 来说, FrameBuffer中的两个字节代表屏幕上一个点,从上到下,从左至右,屏幕位置与内存地址是顺序的线性关系。帧缓存有个地址,是在内存里。我们通过不停的向frame buffer中写入数据, 显示控制器就自动的从frame buffer中取数据并显示出来。全部的图形都共享内存中同一个帧缓存。
方法三:Android截屏实现思路
Android系统是基于Linux内核的,所以也存在framebuffer这个设备,我们要实现截屏的话只要能获取到framebuffer中的数据,然后把数据转换成图片就可以了,android中的framebuffer数据是存放在 /dev/graphics/fb0 文件中的,所以我们只需要来获取这个文件的数据就可以得到当前屏幕的内容。
现在我们的测试代码运行时候是通过RC(remote controller)方式来运行被测应用的,那就需要在PC机上来访问模拟器或者真机上的framebuffer数据,这个的话可以通过android的ADB命令来实现。
注意:
1、需要在AndroidManifest.xml中加入代码:android:sharedUserId="android.uid.system"。
2、由于调用了@hide的API,所以编译得时候请使用makefile编译。或者通过在Eclipse中添加Jar文件通过编译。
3、此代码只在Android4.0中使用过,2.3的就没去做测试了。
补充说明:
利用TakeScreenShotService截图Android手机一般都自带有手机屏幕截图的功能:在手机任何界面(当然手机要是开机点亮状态),通过按组合键,屏幕闪一下,然后咔嚓一声,截图的照片会保存到当前手机的图库中,
对手机android源码中通过组合键屏幕截图的整个流程有个大体了解了,在改动中熟悉按键的捕获原理,并且清楚调用的截屏函数接口即可。
❺ 怎么用安卓手机截屏
1,截屏
很多人截屏采用同时按住关机键和音量键的方式,这种方式容易误操作,很容易就锁屏。可以采用以下两种方式:
利用“小圆点”里添加截屏:点击设置,触控,打开辅助触控,自定顶层菜单,“+”图标,再点击图标,选择截屏。添加以后,点击“小圆点”,再点击截屏,就可以实现截屏功能。
敲击手机背板实现截屏:设置,辅助功能,触控,底部找到轻点背面,在轻点两下或者三下里选择截屏,就可以实现敲击背板截屏。
2,截长屏
复制网页链接,打开Safari浏览器,粘贴链接,并打开网页。截屏,可以敲手机背板,也可以同时按住关机键和音量+键。截屏之后,点击左下角截屏的照片,在里面选择“整页”,即可。
3,复制照片上的文字
课堂上的板书太多,来不及抄写,或者街上看到一段文字,可以用手机进行拍照,拍完后在相册里找到照片,长按照片就可以选择文字并进行复制,非常方便。
4,保护隐私
经常发现在网络搜了一款衣服,在其他APP里就开始推荐刚刚搜过的款式相似的衣服;在某APP看了某种类型的视频,在其他APP里推荐同类型的视频。在这些APP面前毫无隐私可言,利用大数据“杀熟”。
此时我们就可以限制其他APP跟踪我们的访问记录。依次点击设置,隐私,关闭“允许APP请求跟踪”,或者在下面的列表里有选择的关闭。
5,无痕访问
当需要隐藏访问记录时,可以采用无痕浏览模式。打开Safari浏览器,点击右下角两个小方框,点击起始页,选择无痕浏览即可。
6,关闭APP通知广告
APP经常会推送营销广告,会让人误以为是消息,可以关闭APP的通知,就不会再收到各种通知广告。依次点击设置,通知,选择APP,将允许通知关闭。
7,减少系统耗电
当手机电量不多,我们可以采用以下几个方法尽量减少手机系统的耗电。将显示与亮度设置为自动;在通用,后台APP刷新里关闭刷新权限或者选择指定的APP关闭刷新的权限;在不用使用5G网络时,关闭5G功能,5G要比4G耗电量多一倍甚至更多。