Android开发:我要写一个自定义的TextView要求这个自定义view有个public的接口调用时该view从右往左逐渐消失掉帮我找找有没有人写过类似的自定义view注意不要给我平移的效果!我要的是view的位置保持不变然后从最右边开始往最左边慢慢消失掉!注意是从右往左!从右往左!从右往左!从右往左!不是整体渐隐!也不是平移消失!
你可以尝试使用属性动画来实现这个效果。以下是一个简单的示例代码,可以实现从右往左逐渐消失的效果:
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
public class DisappearingTextView extends TextView {
public interface OnDisappearingListener {
void onDisappear();
}
private OnDisappearingListener mListener;
public DisappearingTextView(Context context) {
super(context);
init();
}
public DisappearingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DisappearingTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
public void setOnDisappearingListener(OnDisappearingListener listener) {
mListener = listener;
}
public void startDisappearingAnimation() {
ObjectAnimator animator = ObjectAnimator.ofFloat(this, "alpha", 1f, 0f);
animator.setDuration(2000);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (mListener != null) {
mListener.onDisappear();
}
}
});
animator.start();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
}
你可以使用setOnDisappearingListener()方法设置消失动画完成时的回调监听器。然后,通过调用startDisappearingAnimation()方法来开始消失动画。
请注意,上述代码仅提供了基本的实现思路,你可能需要根据具体需求进行相应的修改和调整
原文地址: http://www.cveoy.top/t/topic/iYNm 著作权归作者所有。请勿转载和采集!