Android UI自定义控件

Android仿抖音短视频加载等待动画条

2021-05-26  本文已影响0人  dlihasa

前言

类似抖音中短视频列表上下滑动观看视频的方式,在下方展示等待动画条无疑是很好的体验,项目中可以借鉴这种设计,实现上也是比较简单的

实现

Java代码:

public class LoadingLine extends FrameLayout {

    private View loadView;

    public LoadingLine(Context context) {
        super(context);
        initView(context);
    }

    public LoadingLine(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        initView(context);
    }

    public LoadingLine(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }

    private void initView(Context mContext){
        final View view = LayoutInflater.from(mContext).inflate(R.layout.line_layout,null);
        loadView = view.findViewById(R.id.loadingView);
        startAnimation();
        this.addView(view);
    }

    public void startAnimation(){
        ScaleAnimation scale = new ScaleAnimation(
                0.3f, 1f, 1f, 1f,
                Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f);
        AlphaAnimation alpha = new AlphaAnimation(1f,0.2f);
        scale.setRepeatCount(-1);
        alpha.setRepeatCount(-1);
        AnimationSet set = new AnimationSet(true);
        set.addAnimation(scale);
        set.addAnimation(alpha);
        set.setDuration(500);
        loadView.startAnimation(set);
    }

}

上方这种实现其实就是内部做了一个动画,动画参数和方式可以根据实际情况进行调整。
使用时,在视频加载完成之前展示等待,加载完成播放时隐藏掉就可以了。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/transparent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <View
        android:id="@+id/loadingView"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:background="@color/white"/>
</FrameLayout>

效果如下(太懒了,没有单独拿出来写demo):


嗯,图好丑,不重要~做成gif图有些卡顿,实际效果还是很流畅的。

上一篇 下一篇

猜你喜欢

热点阅读