Android开发:我要写一个自定义的RelativeLayout要求这个自定义view有个public的接口调用时该view从右往左逐渐消失掉帮我找找有没有人写过类似的自定义view注意不要给我平移的效果!我要的是view的位置保持不变然后从最右边开始往最左边慢慢消失掉!注意是从右往左!从右往左!从右往左!从右往左!不是整体渐隐!
我了解你的需求。你可以使用属性动画来实现从右往左逐渐消失的效果,而不是整体渐隐。以下是一个示例代码,你可以参考并根据自己的需求进行修改:
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.RelativeLayout;
public class CustomRelativeLayout extends RelativeLayout {
private View childView;
public CustomRelativeLayout(Context context) {
super(context);
}
public CustomRelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setChildView(View view) {
this.childView = view;
}
public void startDisappearAnimation() {
if (childView == null) {
return;
}
// 获取子view的宽度
int childWidth = childView.getWidth();
// 创建属性动画,让子view从右往左逐渐消失
ObjectAnimator anim = ObjectAnimator.ofFloat(childView, "translationX", 0, -childWidth);
anim.setDuration(1000);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
// 动画结束后隐藏子view
childView.setVisibility(View.INVISIBLE);
}
});
// 启动动画
anim.start();
}
}
你可以在布局文件中使用这个自定义的RelativeLayout,并通过调用setChildView(View view)方法设置要消失的子view,然后调用startDisappearAnimation()方法启动动画。
注意,这只是一个示例代码,你可以根据自己的需求进行修改和优化
原文地址: http://www.cveoy.top/t/topic/iYNd 著作权归作者所有。请勿转载和采集!