android 点赞动画 自定义UI实现

本文介绍了如何在Android中实现点赞动画,通过自定义UI组件FlowLikeView,展示了一个点赞上浮的效果。只需将FlowLikeView加入XML布局,并在点赞事件中调用addLikeView()方法即可启动动画。
摘要由CSDN通过智能技术生成

android 点赞动画 自定义UI实现

先看效果
在这里插入图片描述

FlowLikeView自定义UI
/**
 * 点赞自定义控件
 */
public class FlowLikeView extends RelativeLayout {
   

    private List<Drawable> mLikeDrawables; // 图片的集合
    private LayoutParams mLayoutParams; // 用于设置动画对象的位置参数
    private Random mRandom; // 用于产生随机数,如生成随机图片

    private int mViewWidth; // 控件的宽度
    private int mViewHeight; // 控件的高度

    private int mPicWidth; // 图片的宽度
    private int mPicHeight; // 图片的高度

    private int mChildViewHeight; // 在 XML 布局文件中添加的子View的总高度

    public FlowLikeView(Context context) {
   
        this(context, null);
    }

    public FlowLikeView(Context context, AttributeSet attrs) {
   
        this(context, attrs, 0);
    }

    public FlowLikeView(Context context, AttributeSet attrs, int defStyleAttr) {
   
        super(context, attrs, defStyleAttr);

        initParams();
    }

    private void initParams() {
   
        mLikeDrawables = new ArrayList<>();
        mLikeDrawables.add(generateDrawable(R.drawable.icon_video_play_zaned));

        // 获取图片的宽高, 由于图片大小一致,故直接获取第一张图片的宽高
        mPicWidth = mLikeDrawables.get(0).getIntrinsicWidth();
        mPicHeight = mLikeDrawables.get(0).getIntrinsicHeight();

        // 初始化布局参数
        mLayoutParams = new RelativeLayout.LayoutParams(mPicWidth, mPicHeight);
        mLayoutParams.addRule(CENTER_HORIZONTAL);
        mLayoutParams.addRule(ALIGN_PARENT_BOTTOM);

        mRandom = new Random();
    }

    private Drawable generateDrawable(int resID) {
   
        return ContextCompat.getDrawable(getContext(), resID);
    }

    @Override
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值