Android开发一个TextView像一个纸张一样从右边卷到左边这样消失掉的效果有示例代码吗注意是卷起来卷到最左边然后消失并不是平移这么简单别给我整平移动画了啊!你可以写自定义TextView!别给我整平移动画你怎么那么喜欢平移!问你好几次都是给平移!没看过纸卷起来吗!
抱歉给您带来困扰。实现一个TextView像纸张一样从右边卷到左边消失的效果,可以通过自定义TextView,并结合属性动画来实现。以下是一个示例代码:
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.TextView;
public class RollingTextView extends TextView {
private int mWidth;
private ObjectAnimator mRollingAnimator;
public RollingTextView(Context context) {
super(context);
init();
}
public RollingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public RollingTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mRollingAnimator = ObjectAnimator.ofFloat(this, "translationX", 0, 1);
mRollingAnimator.setDuration(3000);
mRollingAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
mRollingAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
setVisibility(View.GONE);
}
});
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mWidth = w;
}
@Override
protected void onDraw(Canvas canvas) {
// 创建一个画笔
Paint paint = new Paint();
paint.setColor(getCurrentTextColor());
paint.setTextSize(getTextSize());
paint.setAntiAlias(true);
// 获取TextView的文本
String text = getText().toString();
// 计算文本的宽度
float textWidth = paint.measureText(text);
// 计算文本起始绘制位置
float startX = mWidth - textWidth;
// 绘制文本
canvas.drawText(text, startX, getHeight() / 2f, paint);
}
public void startRollingAnimation() {
mRollingAnimator.start();
}
}
使用时,可以在布局文件中使用RollingTextView代替TextView,并在代码中调用startRollingAnimation()方法来启动卷动动画:
RollingTextView rollingTextView = findViewById(R.id.rolling_text_view);
rollingTextView.startRollingAnimation();
请注意,代码仅实现了TextView的卷动效果,您可能需要根据自己的需求进行调整或添加其他效果
原文地址: http://www.cveoy.top/t/topic/iYEK 著作权归作者所有。请勿转载和采集!