美文网首页
使用rxjava实现依次播放三个动画

使用rxjava实现依次播放三个动画

作者: 大道至简_知易行难 | 来源:发表于2021-03-21 12:08 被阅读0次

1、首先看一下效果,需求是每隔5s提示一个动画

ezgif-6-14206a9dad75.gif

2、图片背景使用.9图片实现,如果遇见图片上面文字不能达到预想位置,可以手动设置padding

3、接下来贴出来主要代码

        android:id="@+id/tv_tip_device_open"
        android:layout_width="213dp"
        android:layout_height="100dp"
        android:textColor="@android:color/white"
        android:background="@drawable/img_home_pop"
        android:text="已为您开启新风系统"
        android:textSize="18sp"
        android:textStyle="bold" />

接下来是activity的代码

Observable.intervalRange(0, 5, 0, 1, TimeUnit.SECONDS)
                .repeat(3)
                .subscribe(new Observer<Long>() {
                    int i = 0;

                    @Override
                    public void onSubscribe(@NonNull Disposable d) {
                        Log.e(TAG, "onSubscribe: ");
                    }

                    @Override
                    public void onNext(@NonNull Long aLong) {
                        if (aLong == 0) {
                            showRepeatAnim(i);
                            i++;
                            Log.e(TAG, "开启新动画 " + i);
                        }
                        Log.e(TAG, "onNext: " + aLong);
                    }

                    @Override
                    public void onError(@NonNull Throwable e) {
                        Log.e(TAG, "onError: ");
                    }

                    @Override
                    public void onComplete() {
                        Log.e(TAG, "onComplete: ");
                    }
                });

 private void showRepeatAnim(int i) {
        String content = devicesTipsList.get(i);
        tvAnim.setText(content);
        //透明度变化
        LinearInterpolator linearInterpolator = new LinearInterpolator();
        AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);//第一个参数开始的透明度,第二个参数结束的透明度
        alphaAnimation.setDuration(2000);//多长时间完成这个动作
        tvAnim.startAnimation(alphaAnimation);
        alphaAnimation.setInterpolator(linearInterpolator);
    }

这里只是做一下记录时间紧急接着撸。。,如果有需要代码的可以点赞私信我

相关文章

网友评论

      本文标题:使用rxjava实现依次播放三个动画

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