做效果展示时经常需要一些Gif图来显示动态效果,我目前使用的方法是手机录屏生成视频文件,再通过第三方软件用视频文件生成动图。刚才制作了一个动图效果图如下:

这里我使用的是adb的screenrecord命令,它是API Level 19以上才支持的,官方文档原文如下:
The screenrecord command is a shell utility for recording the display of devices running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4 file.
开始录制
adb shell screenrecord /sdcard/demo.mp4
上面命令后开始录制,默认情况下它会录制3分钟,按下ctrl+c会提前结束录制。它支持 –size 、–bit-rate、–time-limit、–rotate等参数,最常用是前两个。
导出视频文件
adb pull /sdcard/demo.mp4
使用第三方工具或者QQ直接传到电脑上也行。
转Gif文件
有很多工具,我在Mac上使用的是GIFBrewery,傻瓜式的,可以指定GIF图片大小和帧数,就不截图了。
还有一个网站在线制作,也很方便:http://ezgif.com/
注意
因为手机分辨率太高,我试用了一下使用模拟器截屏,发现会报错:”unable to create encoder input surface (err=-38)”,后面查资料发现是系统bug,在高版本的模拟器上不再支持截屏命令,也就是目前只能使用设备截屏。
我在使用工具转Gif时把分辨率改小,图片会模糊很多,录屏时就设置分辨率效果会好很多(我的手机是1440*2560,生成320*480的图,效果也只能这样了),命令如下:
adb shell screenrecord –size 848x480 /sdcard/demo.mp4
官方文档:http://developer.android.com/tools/help/shell.html