String
String的创建机制
因为String在Java中使用过于频繁,Java为了避免在系统中产生大量的String对象,引入了字符串常量池的概念。
其运行机制是:
- 创建一个字符串时,首先检查池中是否有值相同的字符串对象(equals决定),如果有则不需要创建而是直接从常量池中找到的该字符串对象的引用;
- 如果没有则新建一个字符串对象,返回该对象引用,并且将新创建的字符串对象放入池中
今天说的这个主题与媒体播放有关,尤其是音乐播放,说到音乐播放大家应该都用过音乐App。
通常一个音乐App的实现主要涉及如下几点:
对于上面的这几点,其实Android
已经为我们提供了一套完整的解决方案,它已经很好的将这些操作进行了封装,我们只需要关注数据的获取和歌曲的播放即可。Android
提供的这套API在support-v4
中提供了兼容版本,因此在使用的过程中最好使用该版本以兼容低版本系统。
关键类主要有如下几个:
MediaBrowserServiceCompat
媒体浏览器服务MediaBrowserCompat
媒体浏览器MediaControllerCompat
媒体控制器MediaSessionCompat
媒体会话Behavior是Android Design包中出现的一个概念,Android Design包中很多控件的动画效果都是使用Behavior实现的,所以想要更好的实现Material Design风格的应用就有必要弄清楚Behavior。这篇文章从简单开始,介绍如何自定义Behavior以实现快速返回的效果。
还是先看下最终实现的效果
在使用App过程中,经常会有使用到联系人或城市列表的场景,其实这两种效果是一样的,都是右边有个索引列表,点击索引列表可跳转到指定字母开头的联系人或城市上去,同时向上滑动过程中头部会有个显示当前联系人首字母的界面固定不动。下面我以微信通讯录的效果作为例子,介绍我是如何实现一个这样效果自定义View的思路和过程。
下面是我实现的最终效果图(GIF录制的不太好),想看源代码的同学戳这里https://github.com/huyongli/IndexStickyView
Update your browser to view this website correctly. Update my browser now