欢迎来到 Android人的问与答 ,在这里提问或帮助他人解答。 Question2Answer的1.6.x和1.7.x版本的中文翻译包我修改更新:

Question2answer

如何使用中文语言包

Q2A 1.6.x - Chinese Simplified (简体中文)

Q2A 1.7.x - Chinese Simplified (简体中文)


国内服务器推荐 阿里云服务器
国外服务器推荐 DigitalOcean
VPN推荐 正版Green VPN
阿里云推荐码:ldvq50

国外的一个社交网络及微博客服务的网站的点赞效果怎么实现?

0 喜欢 0 不喜欢
106 浏览

效果图如下所示:

作者用了很简单的实现方式,一步一步分出来。

1.先实现一个画圆的视图CircleView

 

看图知道主要在ondraw()函数画两个不断扩大圆就可以,内部圆提供的画笔path 设置:

maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

2.接下来就是实现一个画四周点的视图DotsView。

 

其实还是画圆,我们需要确定各个圆的圆心。

int cX = (int) (centerX + currentRadius1 * Math.cos(i * OUTER_DOTS_POSITION_ANGLE * Math.PI / 180));

 

int cY = (int) (centerY + currentRadius1 * Math.sin(i * OUTER_DOTS_POSITION_ANGLE * Math.PI / 180));

3.星星的缩放动画,这个很简单,作者没写个画星星的类,直接用图片代替了。

 

4.最后写了个LikeButtonView继承FrameLayout,把以上三部分组合起来了。

 

看布局源码就知道了。

<?xml version="1.0" encoding="utf-8"?>

<merge xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

 

    <frogermcs.io.likeanimation.DotsView

        android:id="@+id/vDotsView"

        android:layout_width="200dp"

        android:layout_height="200dp"

        android:layout_gravity="center"/>

 

    <frogermcs.io.likeanimation.CircleView

        android:id="@+id/vCircle"

        android:layout_width="80dp"

        android:layout_height="80dp"

        android:layout_gravity="center"/>

 

    <ImageView

        android:id="@+id/ivStar"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:src="@drawable/ic_star_rate_off"/>

</merge>

 

源码下载地址:

https://github.com/frogermcs/LikeAnimation

最新提问 3月 28, 2016 分类:Android动画Animation | 用户: forlong401 (7,050 分)

登录 或者 注册 后回答这个问题。

...