- 博客(86)
- 资源 (65)
- 收藏
- 关注
原创 移动迷宫——拼图游戏
拼图游戏就是将用户选择的图片根据选择的难度进行分割,并抽出一张图片用空白块代替,同时随机打乱顺序,作为拼图的初始游戏界面。当用户点击空白块周围上下左右相邻的图片时,可以移动该图片,当整个图片的位置都与原始图片一致时,拼图完成。
2016-06-14 16:31:02
3126
原创 Android 5.X 新特性详解(五)——Notification
Google在Android 5.0 上又进一步改进了通知栏,优化了Notification。当长按Notification的时候,会显示消息来源。Notification会有一个从白色到灰色的动画切换效果,最终显示发出这个Notification的调用者。同时,在Android 5.X 设备上,锁屏状态下我们也可以看见Notification通知了。
2016-06-14 09:21:25
2365
原创 Android 5.X 新特性详解(五)——Toolbar
Toolbar与ActionBar最大的区别就是Toolbar更加自由、可控。这也是Google在逐渐使用Toolbar替换ActionBar的原因,要使用Toolbar必须引入appcompat-v7支持,并设置主题为NoActionBar。
2016-06-13 11:50:59
902
原创 Android 5.X 新特性详解(四)——Material Design 动画效果
Ripple效果在Android 5.X 中,Material Design 大量使用了Ripple效果,即点击后的波纹效果。
2016-06-13 09:42:50
2120
原创 Android 5.X 新特性详解(三)——Activity过渡动画
Android 5.X 提供了三种Transition类型。进入:一个进入的过渡动画决定Activity中的所有视图怎么进入屏幕。退出:一个退出的过渡动画决定Activity中的所有视图怎么退出屏幕。共享元素:一个共享元素过渡动画决定两个Activities之间的过渡,怎么共享它们的视图。
2016-06-12 14:31:34
1533
原创 Android 5.X 新特性详解(二)——列表与卡片
RecyclerView在Android 5.X 中将使用了很久的ListView做了升级,增加了一个使用更方便、效率更高的控件——RecyclerView。
2016-06-12 11:18:42
707
原创 Android 5.X 新特性详解(一)——主题、Palette、阴影、着色和裁剪
Android 5.X 系列开始使用新的设计风格Material Design来统一整个Android系统的界面设计风格。
2016-06-08 15:26:49
1642
原创 Android动画机制与使用技巧(五)——Android 5.X SVG 矢量动画机制
Google在Android 5.X 中增加了对SVG 矢量图形的支持,这对于创建新的高效率动画具有非常重大的意义。
2016-06-05 17:58:24
9423
原创 Android动画机制与使用技巧(二)——属性动画分析
属性动画框架Animator中使用最多的就是AnimatorSet和ObjectAnimator配合,使用ObjectAnimator进行更精细化控制,只控制一个对象的一个属性值,而使用多个ObjectAnimator组合到AnimatorSet形成一个动画。
2016-06-02 11:32:06
918
原创 Android动画机制与使用技巧(一)——Android View动画框架
Animation框架定义了透明度、旋转、缩放和位移几种常见的动画,而且控制的是整个View,实现原理是每次绘制视图时,View所在的ViewGroup中的drawChild()方法获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。
2016-06-01 17:29:21
923
原创 Android绘图机制与处理技巧(五)——View的孪生兄弟SurfaceView
View通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果在16ms内View完成了所需要执行的所有操作,那么在用户的视觉上,就不会产生卡顿的感觉;而如果执行的操作逻辑太多,特别是需要频繁刷新的界面上,例如游戏界面,那么就会不断阻塞主线程,从而导致画面卡顿。
2016-06-01 14:34:53
1889
原创 Android绘图机制与处理技巧(四)——Android图像处理之画笔特效处理
除了常用的画笔属性,比如普通的画笔(Paint),带边框、填充的style,颜色(Color),宽度(StrokeWidth),抗锯齿(ANTI_ALIAS_FLAG)等,Android还提供了各种各样专业的画笔工具,如记号笔、毛笔、蜡笔等,使用它们可以实现更加丰富的效果。
2016-06-01 08:51:47
4970
原创 Android绘图机制与处理技巧(三)——Android图像处理之图形特效处理
Android绘图机制与处理技巧(三)——Android图像处理之图形特效处理
2016-05-30 09:57:36
1545
原创 Android绘图机制与处理技巧(二)——Android图像处理之色彩特效处理
Android对于图片处理,最常使用到的数据结构是位图——Bitmap,它包含了一张图片所有的数据。整个图片都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而颜色值——ARGB,分别对应透明图、红、绿、蓝这四个通道分量,它们共同决定了每个像素点显示的颜色。
2016-05-27 08:43:54
9196
1
原创 Android绘图机制与处理技巧(一)——Android绘图技巧
CanvasCanvas作为绘制图形的直接对象,提供了以下几个非常有用的方法。canvas.save()canvas.restore()canvas.rotate()canvas.translate()
2016-05-23 20:32:01
2101
原创 Android Scroll分析(三)——ViewDragHelper
Google在其support库中为我们提供了DrawerLayout和SlidingPaneLayout两个布局来帮助我们实现侧边栏滑动的效果。在这两个功能强大的布局后面,有一个鲜为人知却功能强大的类——ViewDragHelper。通过ViewDragHelper,基本可以实现各种不同的滑动、拖放需求。
2016-05-20 09:42:38
810
原创 Android Scroll分析(二)——实现滑动的五种方法
实现滑动的思想基本是一致的,当触摸View时,系统记下当前触摸点坐标;当手指移动时,系统记下移动后的触摸点坐标,从而获取到相对于前一次坐标点的偏移量,并通过偏移量来修改View的坐标,这样不断重复,从而实现滑动过程。
2016-05-19 20:42:25
982
原创 Android Scroll分析(一)——滑动效果是如何产生的
滑动一个View,本质上来说就是移动一个View。改变其当前所处的位置,它的原理与动画效果的实现非常相似,都是通过不断地改变View的坐标来实现这一效果。所以,要实现View的滑动,就必须监听用户触摸的事件,并根据事件传入的坐标,动态且不断地改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。
2016-05-16 22:23:31
548
原创 Android控件架构与自定义控件详解(四)——事件拦截机制分析
为了能够方便地了解事件拦截机制的整个流程,设计这样一个实例:MyViewGroupA——最外层的ViewGroupMyViewGroupB——中间的ViewGroupMyView——最底层的View
2016-05-15 19:56:43
545
1
原创 Android控件架构与自定义控件详解(三)——自定义ViewGroup
ViewGroup存在的目的就是为了对其子View进行管理,为其子View添加显示、响应的规则。因此,自定义ViewGroup通常需要重写onMeasure()方法来对子View进行测量,重写onLayout()方法来确定子View的位置,重写onTouchEvent()方法增加响应事件。
2016-05-15 18:36:27
509
原创 Android控件架构与自定义控件详解(二)——自定义View
在自定义View时,我们通常会去重写onDraw()方法来绘制View的显示内容。如果该View还需要使用wrap_content属性,那么还必须重写onMeasure()方法。另外,通过自定义attrs属性,还可以设置新的属性配置值。
2016-05-14 19:51:19
5471
2
原创 Android控件架构与自定义控件详解(一)——Android控件架构与View的绘制原理
Android控件架构在Android中,控件大致被分为两类,即ViewGroup控件与View控件。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。
2016-05-11 22:43:44
2471
1
原创 ListView的选择模式
在这个demo里,我们会掌握如何使用ListView创建一个国家选择器。该选择器的运行效果如下图所示。当选择了一个国家时,点击“Pick Country”按钮,就会在Toast中显示出国家名。
2015-12-19 18:38:18
1103
原创 使用Activity和Delegate与适配器交互
在这个Demo里,我们会分析如何通过委托模式(Delegation Pattern)帮助开发者把所有的业务逻辑从适配器中移到Activity中。我们创建一个简单的应用程序,通过该应用程序可以向列表中添加电话号码,列表中每一行都有一个Remove按钮,用于删除电话号码。
2015-12-19 16:04:35
4091
原创 为ListView添加分段标头
在该Demo中,有一个分段标头(section header)随列表滚动,当前分段标头一直显示在屏幕顶端。在下图中,突出显示的字母就是分段标头,其下方的列表项显示首字母与分段标头相同的国家。
2015-12-19 12:33:26
1319
原创 使用Android库项目时适用的架构模式
在Android库项目(Library Project)发布之前,在不同Android项目间共享代码是很困难甚至是不可能的。通常使用JAR包共享Java代码,但是却无法共享那些需要引用资源文件的代码。共享Activity或者自定义视图是不可能的,因为开发者无法把资源文件添加到JAR包中,供其它应用程序使用。为了解决共享代码的问题,Android库项目应运而生了。
2015-11-22 20:02:53
436
原创 Android开发模式:模型—视图—主导器模式
我们有可能使用过MVC(Model—View—Controller)模式,但当我们用更优的方法测试Android代码时,使用MVP(模型—视图—主导器:Model—View—Presenter)模式可能更合适。
2015-11-22 17:51:54
590
原创 使用Hierarchy Viewer工具移除不必要的视图
Hierarchy Viewer工具可以用来查看视图树(View Tree)并分析视图树中各个视图在测量、布局、绘制阶段所消耗的时间。通过该工具提供的信息,开发者可以找出视图树中那些不必要的视图以及性能瓶颈。
2015-11-21 17:25:09
759
原创 在发布正式版本前移除日志语句
移除日志对于保持Logcat输出的清晰整洁是很重要的。另外,在代码中留下过多日志也会暴露一些开发者不想泄漏的敏感信息。我认为,移除日志的最佳方法是使用ProGuard工具。ProGuard可以移除无用代码,或者使用语义模糊的名称来重命名类、变量和方法,以此达到压缩、优化和混淆代码的目的。这样。生成的APK体积更小,并且更不易被逆向工程。
2015-11-21 16:42:16
589
原创 使用Gallery创建向导表单
当需要用户填充一个较长的表单时,开发者或许会找不到头绪。在接下来的这个例子中,我们会使用Gallery控件创建一个具有多个表单项的用户注册表单。
2015-11-19 21:44:27
689
Android控件架构与自定义控件详解(三)——自定义ViewGroup
2016-05-15
Android控件架构与自定义控件详解(二)——自定义ViewGroup
2016-05-15
Android控件架构与自定义控件详解(二)——自定义View
2016-05-14
ListView的选择模式
2015-12-19
使用Activity和Delegate与适配器交互
2015-12-19
为ListView添加分段标头
2015-12-19
使用Android库项目时适用的架构模式
2015-11-22
Android开发模式:模型—视图—主导器模式
2015-11-22
使用Hierarchy Viewer工具移除不必要的视图
2015-11-21
附加Ken Burns特效的幻灯片
2015-11-06
在Canvas上显示动画
2015-11-04
移动迷宫——拼图游戏
2016-06-14
Android 5.X 新特性详解(五)——Notification
2016-06-14
Android 5.X 新特性详解(五)——Toolbar
2016-06-13
Android 5.X 新特性详解(二)——列表与卡片
2016-06-12
Android 5.X 新特性详解(一)——主题、Palette、阴影、着色和裁剪
2016-06-08
Android动画机制与使用技巧(五)——Android 5.X SVG 矢量动画机制
2016-06-05
自定义动画
2016-06-02
Android绘图机制与处理技巧(四)——Android图像处理之画笔特效处理
2016-06-01
Android绘图机制与处理技巧(二)——Android图像处理之色彩特效处理
2016-05-27
Android Scroll分析(三)——ViewDragHelper
2016-05-20
Android Scroll分析(二)——实现滑动的五种方法
2016-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人