安卓工具相关UI效果仿写

Android搜索框中文字轮播控件TextBanner

2019-07-20  本文已影响266人  总会颠沛流离
image

闲话不多说,先看效果图:


image

实现思路

依赖: implementation 'com.haowen:textbanner:1.0.4'
1:想要达到轮播效果,两个View交替出现即可,既然是两个View那么就需要一个父容器(TextBanner继承FrameLayout):

public class TextBanner extends FrameLayout {
/**
 * 两个View交替出现
 */
private View viewFirst, viewSecond;
}

2:间隔性就用Handler的postDelayed来实现就行了,为了防止内存泄漏,这里采用WeakHandler

   mHandler.postDelayed(task, mDelayTime);

/**
 * 轮播的定时任务:当页数大于1时轮播
 */
private Runnable task = new Runnable() {
@Override
public void run() {
    updateTipAndPlayAnimation();
    mHandler.postDelayed(this, mDelayTime);
}
};

3:交替出现的动画(TextBanner只用了一个简单的Y方向平移动画,并不支持动画设置,因为我觉得没必要花里胡哨的,如果后期有需要,可以考虑提示自定义)

 /**
 * 生成动画
 *
 * @param fromYValue 起始值
 * @param toYValue   结束值
 * @return 动画
 */
  private Animation newAnimation(float fromYValue, float toYValue) {
Animation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0,
        Animation.RELATIVE_TO_SELF, fromYValue, Animation.RELATIVE_TO_SELF, toYValue);
anim.setDuration(mDuration);
anim.setInterpolator(new DecelerateInterpolator());
return anim;
}

5:数据设置适配器,这里采用Adapter的形式(看方法名应该很好理解,似曾相识):

Github传送门 biu biu biu ~~~

上一篇 下一篇

猜你喜欢

热点阅读