美文网首页
Android ViewFlipper仿淘宝消息滚动

Android ViewFlipper仿淘宝消息滚动

作者: 全球顶尖伪极客 | 来源:发表于2018-08-20 16:54 被阅读0次

使用场景:

仿淘宝消息滚动,之前有类似的demo,但是都是一大堆代码或者找个库,无意中看到官方竟然有实现他的View,ViewFlipper
ViewFlipper:系统自带的View,源码

package android.widget;
...
....
@RemoteView
public class ViewFlipper extends ViewAnimator {


public class ViewAnimator extends FrameLayout {

目录: image.png

使用:

xml布局中加入ViewFlipper相关属性代码

    <ViewFlipper
        android:id="@+id/viewflipper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:autoStart="true"
        android:flipInterval="2000"
        android:inAnimation="@anim/anim_come_in"
        android:outAnimation="@anim/anim_come_out" />

在res/anim文件夹下加入:
anim_come_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

anim_come_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="-100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>

初始化数据


private ViewFlipper mViewFlipper;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gson_activity);
        mViewFlipper = findViewById(R.id.viewflipper);
        initData();
    }

    private void initData() {
        for (int i = 0; i < 5; i++) {
            View view = LayoutInflater.from(this).inflate(R.layout.customer_viewflipper_item, null);
            mViewFlipper.addView(view);
        }
    }

滚动的某一项:customer_viewflipper_item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:layout_width="match_parent"
        android:text="hfsjfskdfjsdfhk"
        android:layout_height="wrap_content" />
</LinearLayout>

ViewFlipper相关属性:

在xml布局中的方法介绍:

android:autoStart:   设置自动加载下一个View

android:flipInterval:设置View之间切换的时间间隔

android:inAnimation: 设置切换View的进入动画

android:outAnimation:设置切换View的退出动画

当然同样的在代码activity中也可以设置:

isFlipping:     判断View切换是否正在进行

setFilpInterval:设置View之间切换的时间间隔

startFlipping:  开始View的切换,而且会循环进行

stopFlipping:   停止View的切换

setOutAnimation:设置切换View的退出动画

setInAnimation: 设置切换View的进入动画

showNext:       显示ViewFlipper里的下一个View

showPrevious:   显示ViewFlipper里的上一个View

可以根据以上属性加入更多特效,现举例仅消息滚动列表。

相关文章

网友评论

      本文标题:Android ViewFlipper仿淘宝消息滚动

      本文链接:https://www.haomeiwen.com/subject/rkpliftx.html