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

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);
}
这里只是做一下记录时间紧急接着撸。。,如果有需要代码的可以点赞私信我
网友评论