- 博客(8)
- 资源 (12)
- 收藏
- 关注
原创 使用VerticalRollingTextView实现单行文字垂直滚动
VerticalRollingTextView是一个竖直方向无限循环滚动显示单行文本的控件。非常轻量级,直接继承View实现,使用Paint绘制文本,不依赖任何第三方。开源项目地址:https://github.com/shubowen/VerticalRollingTextView运行效果图: 一、项目使用(1).添加项目依赖。dependencie
2016-09-09 17:52:57 6514
原创 使用VerticalBannerView实现垂直轮播广告(仿淘宝头条)
VerticalBannerView是一个仿淘宝APP首页轮播头条的自定义控件。特性:1.可自由定义展示的内容。2.使用方式类似ListView/RecyclerView。3.可为当前显示的内容添加各种事件,比如点击打开某个页面等。VerticalBannerView开源项目地址:https://github.com/guojunustb/VerticalBannerV
2016-09-08 20:15:03 8286 7
原创 管理状态栏和导航栏
系统栏(system bar)是用来显示通知、设备状态和导航的屏幕区域。一般来说,系统栏(system bar)包括状态栏(status bar)和导航栏(navigation bar),它们与应用程序同时显示在屏幕上。而相册、视频等沉浸式的应用可以淡化系统栏来创造一个更加专注的体验环境,甚至是完全隐藏系统栏。下面来介绍如何在不同的版本中淡化和隐藏系统栏,营造一个沉浸式的用户体验,同时还可
2016-09-08 14:52:57 2879
原创 HandlerThread类的使用和分析
概述HandlerThread继承自Thread类,本质上还是Thread。与普通Thread的区别在于,它在创建一个线程的同时也创建了一个绑定该线程的消息循环,可以在当前线程中分发和处理消息。Handy class for starting a new thread that has a looper. The looper can then be used to create ha
2016-09-06 18:16:53 2786
原创 浅析Handler引起的内存泄漏及解决方法
在进行异步操作时,我们经常会使用到Handler类。最常见的写法如下。public class MainActivity extends Activity { ...... private Handler mHandler = new Handler() { @Override public void handleMessage(Message
2016-09-06 11:52:12 6481 1
原创 性能优化之布局优化篇二 使用<merge>标签
一、概述在xml布局文件中,多余的布局节点和嵌套会导致解析变慢。使用标签可以减少视图层级的嵌套,达到布局优化的效果。什么情况下需要考虑使用Merge标签呢?1.一个布局文件需要被添加到另一个父布局中(可以在xml中使用添加,或在java代码中使用inflate()添加)时,可以使用merge作为该布局的根节点。这样,当被添加进父布局时根节点会自动被忽略,所有的子节点直接被添加到
2016-09-05 15:02:50 4321
原创 性能优化之布局优化篇一 使用ViewStub视图
一、概述ViewStub是一个不显示且不占用布局空间的视图。ViewStub需要指定一个布局layout,在ViewStub初始化时,其指定的layout并未初始化。只有当ViewStub的setVisibility(VISIBLE/INVISIBLE)或inflate()方法被调用,ViewStub所指向的布局layout才会实例化,该layout会使用ViewStub的布局参数Layout
2016-09-02 19:28:38 3122 2
原创 selector的使用及执行流程
selector是Android中的背景选择器。一个selector使用几个不同的drawable来表示相同的图形,根据对象的状态来决定使用哪一个drawable。比如,一个按钮可以有不同的状态,默认状态、被按下的状态。官方文档:https://developer.android.com/guide/topics/resources/drawable-resource.html
2016-09-02 00:42:17 3545
Android使用PagerSlidingTabStrip实现顶部导航栏
2016-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人