声明

本教程,也不应该叫做教程,反正就是毫无技术;只能说是纯手工打造,当然需要完成该教程还是需要你动动手指才行滴~~
话说主要是前3天连续写了3天长文章的博客,一章比一章用心,最后一章写到了昨晚1:30才写好;汗~真的是Hold 不住了;今天就来一个轻松一点儿的吧~~
为什么?
自己想分享手机屏幕短片给朋友看看怎么办?
想给你的软件做一个展示GIF怎么办?
不知道还有没有其他原因;我就这么两个了~~

开工

这个就来一个3部曲吧,走起!!!

录制

前提:手机版本》=4.0;电脑有 adb
现在手机用数据线连接你的电脑,就是两边都用USB插上~~
电脑 CMD 命令输入:adb shell screenrecord /sdcard/movie.mp4

如果显示如上面所示则进入了录制了~~然后动动你的手指在手机上操作操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
在录像过程中,`可以随时按下Ctrl+C快捷键终止录制操作`。

此时进入你的手机文件中,查看SD卡根目录是不是多了一个`movie.mp4`;现在把该文件拷贝到你的电脑上~~
注意:
1. 只能使用adb命令
2. 最长时常180秒
3. 没有同步声音

## 导入PS
前提:PS 软件一枚
打开PS:文件-导入-视频帧到图层
![](http://img.blog.csdn.net/20150107234525981?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1anVlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
等待一回儿,具体多久看自个电脑了,然后会弹出选择视频文件,此时选择我们的 movie.mp4 文件
选择后,我们可以微调一下开始时间和结束时间,另外可以调整一下转换后的图片密度,最后确认。
![](http://img.blog.csdn.net/20150107234912041?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1anVlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
切换窗口模式:窗口-工作区-动感
![](http://img.blog.csdn.net/20150107235122343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1anVlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后自己调整 调整 你的时间速度。
导出GIF
调整好了,现在就保存为GIF吧。
点击:文件-存储为Web所用格式...
选择类型:GIF 类型
![](http://img.blog.csdn.net/20150107235555006?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1anVlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
为了让你的文件更小,你可以在进入前调整图片的整体大小;同时可以调整其中的颜色与仿色值。
最后点击 存储 吧~

注意:如果你的视频的像素较高,那么在PS中可能会占用大量内存,这个要有心理准备啊~~

成果

总的来说教程较为简单,今天早上起来看的时候恰好看见有人问怎么截图的,这个就巧了哈哈~

第一类:属性值 true或者 false

属性 说明
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
android:layout_alignParentStart 紧贴父元素结束位置开始
android:layout_alignParentEnd 紧贴父元素结束位置结束
android:animateLayoutChanges 布局改变时是否有动画效果
android:clipChildren 定义子布局是否一定要在限定的区域内
android:clipToPadding 定义布局间是否有间距
android:animationCache 定义子布局也有动画效果
android:alwaysDrawnWithCache 定义子布局是否应用绘图的高速缓存
android:addStatesFromChildren 定义布局是否应用子布局的背景
android:splitMotionEvents 定义布局是否传递touch事件到子布局
android:focusableInTouchMode 定义是否可以通过touch获取到焦点
android:isScrollContainer 定义布局是否作为一个滚动容器 可以调整整个窗体
android:fadeScrollbars 滚动条自动隐藏
android:fitsSystemWindows 设置布局调整时是否考虑系统窗口(如状态栏)
android:visibility 定义布局是否可见
android:requiresFadingEdge 定义滚动时边缘是否褪色
android:clickable 定义是否可点击
android:longClickable 定义是否可长点击
android:saveEnabled 设置是否在窗口冻结时(如旋转屏幕)保存View的数据
android:filterTouchesWhenObscured 所在窗口被其它可见窗口遮住时,是否过滤触摸事件
android:keepScreenOn 设置屏幕常亮
android:duplicateParentState 是否从父容器中获取绘图状态(光标,按下等)
android:soundEffectsEnabled 点击或触摸是否有声音效果
android:hapticFeedbackEnabled 设置触感反馈

第二类:属性值必须为id的引用名“@id/idname”

属性 说明
android:layout_alignBaseline 本元素的文本与父元素文本对齐
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_toStartOf 本元素从某个元素开始
android:layout_toEndOf 本元素在某个元素结束
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
android:layout_alignStart 本元素与开始的父元素对齐
android:layout_alignEnd 本元素与结束的父元素对齐
android:ignoreGravity 指定元素不受重力的影响
android:layoutAnimation 定义布局显示时候的动画
android:id 为布局添加ID方便查找
android:tag 为布局添加tag方便查找与类似
android:scrollbarThumbHorizontal 设置水平滚动条的drawable。
android:scrollbarThumbVertical 设置垂直滚动条的drawable
android:scrollbarTrackHorizontal 设置水平滚动条背景(轨迹)的色drawable
android:scrollbarTrackVertical 设置垂直滚动条背景(轨迹)的色drawable
android:scrollbarAlwaysDrawHorizontalTrack 设置水平滚动条是否含有轨道
android:scrollbarAlwaysDrawVerticalTrack 设置垂直滚动条是否含有轨道
android:nextFocusLeft 设置左边指定视图获得下一个焦点
android:nextFocusRight 设置右边指定视图获得下一个焦点
android:nextFocusUp 设置上边指定视图获得下一个焦点
android:nextFocusDown 设置下边指定视图获得下一个焦点
android:nextFocusForward 设置指定视图获得下一个焦点
android:contentDescription 说明
android:OnClick 点击时从上下文中调用指定的方法

第三类:属性值为具体的像素值,如30dip,40px,50dp

属性 说明
android:layout_width 定义本元素的宽度
android:layout_height 定义本元素的高度
android:layout_margin 本元素离上下左右间的距离
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
android:layout_marginStart 本元素里开始的位置的距离
android:layout_marginEnd 本元素里结束位置的距离
android:scrollX 水平初始滚动偏移
android:scrollY 垂直初始滚动偏移
android:padding 指定布局与子布局的间距
android:paddingLeft 指定布局左边与子布局的间距
android:paddingTop 指定布局上边与子布局的间距
android:paddingRight 指定布局右边与子布局的间距
android:paddingBottom 指定布局下边与子布局的间距
android:paddingStart 指定布局左边与子布局的间距与android:paddingLeft相同
android:paddingEnd 指定布局右边与子布局的间距与android:paddingRight相同
android:fadingEdgeLength 设置边框渐变的长度
android:minHeight 最小高度
android:minWidth 最小宽度
android:translationX 水平方向的移动距离
android:translationY 垂直方向的移动距离
android:transformPivotX 相对于一点的水平方向偏转量
android:transformPivotY 相对于一点的垂直方向偏转量

第四类:属性值问Android内置值的

属性 说明
android:gravity 控件布局方式
android:layout_gravity 布局方式
android:persistentDrawingCachehua 定义绘图的高速缓存的持久性
android:descendantFocusability 控制子布局焦点获取方式 常用于listView的item中包含多个控件 点击无效
android:scrollbars 设置滚动条的状态
android:scrollbarStyle 设置滚动条的样式
android:fitsSystemWindows 设置布局调整时是否考虑系统窗口(如状态栏)
android:scrollbarFadeDuration 设置滚动条淡入淡出时间
android:scrollbarDefaultDelayBeforeFade 设置滚动条N毫秒后开始淡化,以毫秒为单位。
android:scrollbarSize 设置滚动调大小
android:fadingEdge 设置拉滚动条时 ,边框渐变的放向
android:drawingCacheQuality 设置绘图时半透明质量
android:OverScrollMode 滑动到边界时样式
android:alpha 设置透明度
android:rotation 旋转度数
android:rotationX 水平旋转度数
android:rotationY 垂直旋转度数
android:scaleX 设置X轴缩放
android:scaleY 设置Y轴缩放
android:verticalScrollbarPosition 设置垂直滚动条的位置
android:layerType 设定支持
android:layoutDirection 定义布局图纸的方向
android:textDirection 定义文字方向
android:textAlignment 文字对齐方式
android:importantForAccessibility 设置可达性的重要行
android:labelFor 添加标签
android:background 本元素的背景

现在越来越多的开源项目了,令人收藏不暇,有时只是觉得对方的某个 feature 特别喜欢,但很多人可能打开了其代码找了半天找不到关键所在。其实,如果运用了 Android Studio 带给我们的一些查找功能,任何一份新的开源代码摆在我们眼前,我们都可以快速定位到感兴趣的功能代码。

Read More