String、StringBuffer与StringBuilder

String

String的创建机制

因为String在Java中使用过于频繁,Java为了避免在系统中产生大量的String对象,引入了字符串常量池的概念。

其运行机制是:

  • 创建一个字符串时,首先检查池中是否有值相同的字符串对象(equals决定),如果有则不需要创建而是直接从常量池中找到的该字符串对象的引用;
  • 如果没有则新建一个字符串对象,返回该对象引用,并且将新创建的字符串对象放入池中

微信小程序之页面数据绑定及页面跳转传参

在写前面的小程序入门项目时,发现有两个很常用而且觉得也算比较重要的知识点,这里记录下:

页面数据绑定

比如你的页面需要显示一个Hello字符串,这个这个字符串可能会根据某些情况会动态变化,这个时候就需要进行数据绑定展示了

在wxml文件布局如下:

1
<view>{{message}}</view>

微信小程序之Tab切换

做过android的都知道在android里面实现Tab切换非常简单,使用android提供的TabLayout+ViewPager很容器就实现了Tab切换的效果。

但是小程序中是没有提供类似可以直接使用的组件,因此想要实现此功能需要我们自己去编码实现。在上一篇文章中我提到的小程序练手项目就实现了Tab切换效果,具体效果图可以参考文章微信小程序入门项目

微信小程序之入门项目

最近在学习微信小程序,尝试着写了一个足球视频播放的小程序,先放效果截图吧

TextSwitcher与ViewSwitcher学习笔记

TextSwitcherViewSwitcher是什么,有什么用呢?

其实大家从名字就可以看出来其大概意思,TextSwitcher是用来切换文本显示的,而ViewSwitcher是用来切换视图显示的,实际上他们也的确是用来做这个的,只不过他们在切换视图显示的时候允许添加切换的动画效果。TextSwitcher其实也是ViewSwitcher的子类实现。

TextSwitcher使用

我们先来看看TextSwitcher的用法:

关于媒体浏览器服务(MediaBrowserService)

今天说的这个主题与媒体播放有关,尤其是音乐播放,说到音乐播放大家应该都用过音乐App。
通常一个音乐App的实现主要涉及如下几点:

  1. 从服务器获取音乐数据
  2. 播放音乐时播放器的各种播放状态以及不同状态下的UI展示
  3. 播放过程中通过UI界面控制播放器的各种状态
  4. UI控制如何与播放服务进行关联并进行状态同步
  5. 如何保证后台播放过程中播放服务不被杀死

对于上面的这几点,其实Android已经为我们提供了一套完整的解决方案,它已经很好的将这些操作进行了封装,我们只需要关注数据的获取和歌曲的播放即可。Android提供的这套API在support-v4中提供了兼容版本,因此在使用的过程中最好使用该版本以兼容低版本系统。

关键类主要有如下几个:

  1. MediaBrowserServiceCompat 媒体浏览器服务
  2. MediaBrowserCompat 媒体浏览器
  3. MediaControllerCompat 媒体控制器
  4. MediaSessionCompat 媒体会话
    我们一个个来说。

Behavior实现UC浏览器首页动画效果

老规矩,还是先上效果图
图片名称

github地址

Behavior实现滑动隐藏ToolBar与BottomNavigation

多说无益,先上效果图img\material-design

图片名称

这个效果其实是和SegmentFault的首页效果是一样的。

Demo github地址戳这里

来由

自定义Behavior实现快速返回效果

Behavior是Android Design包中出现的一个概念,Android Design包中很多控件的动画效果都是使用Behavior实现的,所以想要更好的实现Material Design风格的应用就有必要弄清楚Behavior。这篇文章从简单开始,介绍如何自定义Behavior以实现快速返回的效果。

还是先看下最终实现的效果
图片名称

自定义实现微信通讯录效果View

前言

在使用App过程中,经常会有使用到联系人或城市列表的场景,其实这两种效果是一样的,都是右边有个索引列表,点击索引列表可跳转到指定字母开头的联系人或城市上去,同时向上滑动过程中头部会有个显示当前联系人首字母的界面固定不动。下面我以微信通讯录的效果作为例子,介绍我是如何实现一个这样效果自定义View的思路和过程。

实现效果

下面是我实现的最终效果图(GIF录制的不太好),想看源代码的同学戳这里https://github.com/huyongli/IndexStickyView

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×