HotHeart

Project Url: KevinYou128/HotHeart
Introduction: 抖音 APP 点赞效果实现,模仿抖音 APP 双击屏幕蹦出心图,特点: 1. 可以自定义图片 2. 可以自定义旋转角度 3. 超级简洁,占用内存小
More: Author   ReportBugs   
Tags:

抖音 APP 点赞效果实现,模仿抖音 APP 双击屏幕蹦出心图,特点: 1. 可以自定义图片 2. 可以自定义旋转角度 3.可以自定义是否抖动一下再放大消失 4. 超级简洁,占用内存小

预览

预览图片

使用

第一步: 在项目根目录的 build.gradle 文件中加入

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

第二步: 添加依赖项

dependencies {
    implementation 'com.github.KevinYou128:HotHeart:v1.2.4'
}

第三步:直接在布局文件里调用

<com.yqw.hotheart.HeartFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:degrees_interval_max="20"
    app:degrees_interval_min="-20"
    app:swipe_image="@drawable/ic_heart"
    tools:context=".MainActivity">
<ImageView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:src="@drawable/douyin" />
</com.yqw.hotheart.HeartFrameLayout>

直接在你的父布局外层包裹上 hotheart 布局就可以了,另外,考虑到缩减布局层数,我特意添加了 HeartLinearLayout、HeartConstraintLayout、HeartRelativeLayout、HeartFrameLayout 等父容器,你可以直接使用它们来替换你的原生布局,以达到缩减布局层数的效果。

XML 属性说明

heart_swipe_image:点击时需要显示的图片

heart_shake:设置是否有抖动效果,默认为抖动,设置 false 为不抖动

heart_refresh_rate:设置动画刷新频率,默认为 16,数值越大动画表现越慢,建议使用默认就好了

heart_degrees_interval_min:图片最小旋转角度,默认 -30,取值范围为 -360 到 360(注意取值小于或等于 max)

heart_degrees_interval_max:图片最大旋转角度,默认 30,取值范围为 -360 到 360(注意取值大于或等于 min)

java 代码属性说明

setOnDoubleClickListener:双击事件监听

示例: heart.setOnDoubleClickListener(new OnDoubleClickListener() { @Override public void onDoubleClick(View view) { //双击事件处理 } }); 点击事件: heart.setOnDoubleClickListener(new OnDoubleClickListener() { @Override public void onDoubleClick(View view) { showToast("双击了"); } }); heart.setOnSimpleClickListener(new OnSimpleClickListener() { @Override public void onSimpleClick(View view) { showToast("单击了"); } });
setSwipeImage(int id):设置点击时需要显示的图片

setRefreshRate(int refreshRate):设置动画刷新频率,默认为 16,数值越大动画表现越慢,建议使用默认就好了

setDegreesInterval(int min,int max):设置图片旋转角度区间,默认 -30 到 30
min 取值范围为 -360 到 360
max 取值范围为 -360 到 360

博客地址

最后

欢迎交流意见!

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools