欢迎来到 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

最新Twitter应用的点赞效果怎么实现?

0 喜欢 0 不喜欢
127 浏览

效果示意图:

实现这个的思路是:

  • 1.将当前的view变小,画圆半径从小到大,同时颜色渐变 (P1)
  • 2.当半径到达MAX_RADIUS,开始画空心圆,空闲圆半径变大,画笔宽度从MAX_RADIUS变小
  • 3.当空心圆半径达到 MAX_RADIUS - RINGWIDTH (P2), 此时变成圆环,在圆环上生成个DOT_NUMBER个小圆,均匀分布
  • 4.空心圆继续变大,逐渐圆环消失; 同时小圆向外扩散,扩散过程小圆半径减小,颜色渐变;同时下面的view逐渐变大 (P3)

从源码上看,就一个view类,SmallBang继承了View,主要是在这个bang(...)函数做了位置的初始化和动画的逻辑,在ondraw()函数根据动画过程得到的progress和自己定义好的P1,P2,P3做比较,然后去绘制各个过程。

动画效果还是挺流畅,效果也挺棒。这里说说这个库不足的地方。

public static SmallBang attach2Window(Activity activity) {

    ViewGroup rootView = (ViewGroup) activity.findViewById(Window.ID_ANDROID_CONTENT);

    

    SmallBang smallBang = new SmallBang(activity);

    

    rootView.addView(smallBang,

        new ViewGroup.LayoutParams(

        ViewGroup.LayoutParams.MATCH_PARENT,

        ViewGroup.LayoutParams.MATCH_PARENT));

    

    return smallBang;

}

传入参数是activity,会导致如果是dialog使用,就必须改代码,这里写死了,可以优化。

因为此效果多半在列表中使用,所以测试中效果发生的位置会有偏差,是位置获取采用的方式所导致的。

还有就是作者没做取消的效果,可以在里面设置个isSelect的状态,并向外提供这个状态的方法。

作者hanks-zy实现了这种效果SmallBang:

https://github.com/hanks-zyh/SmallBang

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

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

...