Android下录制App操作生成Gif动态图的全过程

Android App开发完了,自然希望录个gif做个展示。视频也可以做展示,但是需要上传到优酷、土豆等等,而且本来就十几秒的App演示操作过程,视频网站的广告就要一分钟,没有gif轻量简单省流量。

下图是我录制的一个短信消灭器应用的效果图:

本文教大家如何录制gif,分享给大家供大家参考,具体内容如下

思路

生成gif的思路是两步

1、把App操作过程录制成视频
2、根据视频转换成Gif

目前网上录制GIf的思路也基本都是分为这2步,不知道有没有更好的方法,一步就生成gif动态的?

利用adb 录制屏幕

在Android sdk下面有一些很有用的工具,adb位于platform-tools文件夹,开发者用它在设备上安装启动应用。早期的sdk版本中,adb位于tools文件夹中。

在终端(linux或者mac os)或者命令提示符(windows)键入

adb help all

可以列出所有可用的命令。

注意,如果经常使用adb工具,建立把sdk的文件夹路径添加到PATH环境变量中。不加入到环境变量中,每次启动adb都需要cd到platform-tools文件夹的位置。
我们录制屏幕利用 adb shell screenrecord命令,还可以使用adb shell screenshot进行截屏。下面是使用说明

tomchen$ ./adb shell screenrecord --help
Usage: screenrecord [options] <filename>

Records the device's display to a .mp4 file.

Options:
--size WIDTHxHEIGHT
 Set the video size, e.g. "1280x720". Default is the device's main
 display resolution (if supported), 1280x720 if not. For best results,
 use a size supported by the AVC encoder.
--bit-rate RATE
 Set the video bit rate, in megabits per second. Default 4Mbps.
--time-limit TIME
 Set the maximum recording time, in seconds. Default / maximum is 180.
--rotate
 Rotate the output 90 degrees.
--verbose
 Display interesting information on stdout.
--help
 Show this message.

Recording continues until Ctrl-C is hit or the time limit is reached.

tomchen$ pwd
/Applications/sdk/platform-tools

可以用--size指定视频分辨率的大小,--bit-rate指定比特率的大小。一般我们不需要设置,用默认的就行了。

tomchen$ ./adb shell screenrecord /sdcard/example.mp4

然后就可以录制的,默认时间是180s ,一般不需要这么长,录制完之后我们ctrl+c提前结束就行。
下面利用 pull 命令把手机上的视频拷到电脑上(也可以用手机助手啥的)

adb push <local> <remote> 将电脑上的文件复制到手机(通常是 sd 卡)
adb pull <remote> <local> 将手机上的文件复制到电脑

示例:

tomchen$ ./adb pull /sdcard/example.mp4 ~/Documents/
8786 KB/s (9449246 bytes in 1.050s)

Android studio 自带录制功能

现在一般都不要 Eclipse 开发 Android,转移到 Android Studio,录制屏幕的功能 google 自然想到了,点击开始按钮就行了(适合不熟悉命令行的同学们)
在 Android Studio 最下方的Android栏左边有一个按钮(下图红框圈出的部分),点击就可以实现录屏。还可以选择比特率、分辨率等,分辨率没空则采用默认值。

点击Start Recording就开始录制了,会弹出录制时间框

录完之后点击Stop Recording,停止录制。

最后会提示录制视频的保存位置,自己选个文件夹保存。

Android Studio 也提供了截屏功能,就在录制按钮的上方

点击截屏会弹出手机当前的操作界面,还可以用Reload刷新手机界面。

视频转gif

这儿方法也有很多

  • 格式工厂之类的,输入视频格式,导出为gif格式
  • 截取很多帧图片,将多张图片拼接为gif
  • QQ影音工具箱自带了截取一段视频保存为gif格式

本文采用一种最简单的方法,利用一款叫 GifCam 的绿色版软件

使用方法很简单,
1. 用一个播放器打开咱们刚才录制好的mp4视频,然后拖动调整 GifCam 大小,让它的透明区域(录制gif区域)覆盖你要录制范围。
2. 点击播放器播放视频,再点击GifCam的Rec按钮,就可以录制gif了。
3. 录完点击stop按钮,选择gif文件保存位置。

本文讲解Android 下如何录制App操作生成Gif动态图的方法,希望对大家的学习有所帮助。

(0)

相关推荐

  • Android 加载GIF图最佳实践方案

    起因 最近在项目中遇到需要在界面上显示一个本地的 GIF 图.按照惯例我直接用了 Glide 框架来实现. Glide 地址: https://github.com/bumptech/glide 我用的 Glide版本为 4.0.0-RC1 , 具体的实现代码如下: Glide.with( this ).asGif().load( R.drawable.yiba_location ).into( location_image ) ; 运行的效果很卡顿,我怀疑是不是方法没有用对,调了压缩模式,还是

  • Android中GIF动图的播放控制和监听详解

    前言 最近接手的项目里涉及到了 GIF 动图的播放与监听,在上一版本中对于 GIF 的处理是由 H5 来实现的,因为考虑到用户体验,因此现在的需求是将这块儿原生化,途中差点误入歧途!下面来看看详细的介绍吧. Android 中 GIF 动图处理与监听 刚开始第一个想到的便是 glide , 但是自认为 glide 不能够控制 GIF 以及去监听它,所以网上去搜寻别的方法.看到有一个方案是将图片分帧,一张张的去用逐帧动画来实现. 我开始怀疑给这个解决方案的人了,都什么时代了还做这种费力不讨好,大量

  • Android通过Movie展示Gif格式图片

    本文实例为大家分享Android通过Movie展示Gif格式图片的相关代码,供大家参考,具体内容如下 public class CommonGifView extends View { private Resources mResources; private Movie mMovie; private long startTime = 0; private float widthRatio; private float heightRatio; public CommonGifView(Con

  • android 显示gif图片实例详解

    在android中不支持gif格式的图片,但是由于我希望在我的程序中刚刚加载的时候有一个小人在跑步表示正在加载.而这个小人跑就是一个gif图片.也就是希望程序一启动时就加载gif图片.在网上查找了一些方法不知道是我使用的android的版本高(android4.4)还是什么问题就是加载不出来.最后想了一个办法加载了出来.这个办法就是将gif放在webView中让其显示. 下面是关于这个的代码: activity_prepare_fullscreen.xml文件 <RelativeLayout x

  • Android 录制手机屏幕视频生成GIF图片实例详解

    Android 录制手机屏幕视频生成GIF图片实例详解 无图无真相,在我们日常的网络交流中往往需要给交流对象提供直观的显示,而视频是一个很好的方式,但是视频需要播放器,还需要当做文件进行对点传输,并不是很方便.想CSDN这样的博客网站也并不支持在博客里放视频这种方式,除非你贴外链,太烦了不是么.最好是如下图这种gif方式,直观 今天来教大家一个易操作的录制方式.当然,一般只适合Android开发者.因为你需要有AndroidStudio 工具 AndroidStudio(完成手机屏幕的视频录制,

  • android播放gif格式图片示例

    复制代码 代码如下: import android.content.Context;import android.graphics.Canvas;import android.graphics.Movie;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup.LayoutParams; import com.nmbs.R; public class GifView exten

  • Android下录制App操作生成Gif动态图的全过程

    Android App开发完了,自然希望录个gif做个展示.视频也可以做展示,但是需要上传到优酷.土豆等等,而且本来就十几秒的App演示操作过程,视频网站的广告就要一分钟,没有gif轻量简单省流量. 下图是我录制的一个短信消灭器应用的效果图: 本文教大家如何录制gif,分享给大家供大家参考,具体内容如下 思路 生成gif的思路是两步 1.把App操作过程录制成视频 2.根据视频转换成Gif 目前网上录制GIf的思路也基本都是分为这2步,不知道有没有更好的方法,一步就生成gif动态的? 利用adb

  • Android下使用TCPDUMP实现数据抓包教程

    如果想分析Android下 某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump生成Wireshark识别的 pcap文件,然后将pcap文件下载到电脑上,用电脑上的Wireshark加载pcap文件,通过Wireshark分析tcpdump抓取的数据. 一.安装tcpdump 为Android手机安装tcpdump,首先必须将Android手机root,现在市面上常用的root工具都很傻瓜很强大,推荐使用root精灵,将手机root以

  • 基于Python实现拆分和合并GIF动态图

    "表情包"是当前社交软件上不可或缺的交流方式,难以用文字表达的意思,发一个"表情包",对方就能心领神会.下面是小派制作的一个表情包,准确地讲,是在已有表情包的基础上,二次加工而成的. 下面以最简单的代码形式(10行左右),介绍上述"表情包"的制作过程.第一,将GIF动态图拆分成图形帧.下图是网络上找到的一个GIF格式动态图. 利用Python将上述GIF格式动态图拆分图形帧,只需要输入以下代码.其中第1-2行是导入os库.从PIL库中导入Imag

  • Matplotlib animation模块实现动态图

    matplotlib 画图功能非常强大,目前也只能根据官网提供的例子简单地画几张图.最近学习了能画动态图的animation模块,作个简单地记录. 在matplotlib作图中,比较常用的是matplotlib.pyplot模块,这个模块有非常多的属性和方法,简要列举下这次用到的方法: matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gr

  • Android Studio下的APP目录结构详解

    Project Name:工程项目名称 Application Name:当前应用发布以后的名字,例如QQ图标下面的名字是"QQ",就是Application Name. Android Studio工程目录 1..gradle和.idea 这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑. 2.app 项目中的代码.资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的,待会儿还会对这个目录单独展开进行

  • Android 破解视频App去除广告功能详解及解决办法总结

    Android 破解视频App去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频还要出现广告那就是打我脸,但是我有没有钱买会员,只能靠着毕生技能去耍耍去除广告了.下面就来介绍一下如何进行视频广告的去除. 一.视频广告播放原理 首先我们需要了解的一个基本知识点那就是广告其实也是一段视频,那么他肯定有请求地址和播放地址.那么我们的思路就来了,如果能够得到这些地址的话,我们就可以去除广告了,为什么呢?因为我们知道所

  • Android下拉刷新PtrFrameLayout的使用实例代码

    1.介绍: 可以包含所有的控件 :ListView, GridView, ScrollView, FrameLayout, 甚至 TextView. 可以自定义刷新头(这点非常实用) 使用简单方便 不足就是不支持上拉加载. 2.使用 首先添加依赖到项目 compile 'in.srain.cube:ultra-ptr:1.0.11' 在Xml中使用 <in.srain.cube.views.ptr.PtrFrameLayout xmlns:android="http://schemas.a

  • Android毕业设计备忘录APP

    目录 1.系统需求分析 1.2 系统需求 功能&说明 1.3 该项目涉及到的技术点 2.数据存储设计 2.1 SharedPrefenrences/SQLite存储介绍 SharedPrefenrences : SQLite存储 2.2数据表结构 3.具体编码及截图 3.1 主界面 3.2 各功能模块 4 总结 源码放到GitHub上了,大家可以看一下 https://github.com/become-better1/hh 1.系统需求分析 1.1 系统功能及框图 该项目实现了备忘录的创建,修

  • 汇总Android视频录制中常见问题

    本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程     以微信为例,其录制触发为按下(住)录制按钮,结束录制的触发条件为松开录制按钮或录制时间结束,其流程大概可以用下图来描述. 1.1.开始录制    根据上述流程及项目的编程惯例,可在onCreate()定义如下函数来完成功能: 初始化过程主要包括View,Data以及Listener三部分.在初始化View时,添加摄像头预览,

  • Yii操作数据库实现动态获取表名的方法

    本文实例讲述了Yii操作数据库实现动态获取表名的方法.分享给大家供大家参考,具体如下: yii  获取某个库中的表名,而且这个库不确定表的多少,此时没法按照gii去根据表去生成文件,这里有个方法去解决掉. $sqls = "show tables"; $datebase = YII::app()->db_order->createCommand($sqls)->queryAll(); //获取表名 这里$datebase 就是所有的表名,我当前有4个库,一个网站公用这

随机推荐