Android平台分享弹出动画

编程入门 行业动态 更新时间:2024-10-10 01:26:34

Android平台分享<a href=https://www.elefans.com/category/jswz/34/1771144.html style=弹出动画"/>

Android平台分享弹出动画

没事的时候就喜欢刷刷今日头条,(不得不吐槽一下,现在的头条广告太他妈多了),以前也没有太在意,这两天看到个有意思的文章想分享盆友圈时候,突然发现,这个分享平台弹出的动画挺有趣的,感觉很好玩,但是觉得好像在android端的app上就没见过,我赶紧把android测试机拿出来试了试,果然:
  • 这是ios版的分享动画:

  • 这是android版的分享动画:

这我就不开心了,ios搞得,难道android就搞不得.废话不多说,开搞…
  • 首先,用属性动画应该可以搞出来
  • 其次,需要给动画加个差值器interpolator来实现效果
  • 然后,界面优化适配等(没弄)

interpolator不了解的可以看这个博客,讲的挺细的android之interpolator的用法详解

这是自定义view的代码,参考了github上一个项目,但地址忘了,找到了再贴上:

public class ShareView2 extends View {private static final float RADIUS = 150f;//上排距离private static final float RADIUS2 = 20f;//下排距离private static final float HEIGHT_VIEW = 200f;private static float DISTANCEPOINT = 150;private OnDownActionListener2 mDown = null;private Point currentPoint1;private Point currentPoint2;private Point currentPoint3;private Point currentPoint4;private Point currentPoint5;private Point currentPoint6;private Point currentPoint7;private float startX;private float startY;private float startY2;private float width;private float height;private Paint mPaint;private Bitmap bitmap1;private Bitmap bitmap2;private Bitmap bitmap3;private Bitmap bitmap4;private Bitmap bitmap5;private Bitmap bitmap6;private Bitmap bitmap7;public ShareView2(Context context, AttributeSet attrs) {super(context, attrs);mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);mPaint.setColor(Color.BLUE);// 初始化WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);height = wm.getDefaultDisplay().getHeight();width = wm.getDefaultDisplay().getWidth();Log.e("TAG---", "height----" + height);Log.e("TAG---", "width----" + width);DISTANCEPOINT = width / 5;bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_wechat);bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_qq_on);bitmap3 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_wxcircle);bitmap4 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_qzone_on);bitmap5 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_sina_on);bitmap6 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_sms_on);bitmap7 = BitmapFactory.decodeResource(getResources(), R.drawable.umeng_socialize_gmail_on);System.out.println("bitmap_width  " + bitmap1.getWidth());startX = (float) (DISTANCEPOINT - bitmap1.getWidth() / 2);startY = height - RADIUS;startY2 = height - RADIUS2;}@Overrideprotected void onDraw(Canvas canvas) {if (currentPoint1 == null) {currentPoint1 = new Point(startX, startY);currentPoint2 = new Point(startX + DISTANCEPOINT, startY);currentPoint3 = new Point(startX + 2 * DISTANCEPOINT, startY);currentPoint4 = new Point(startX + 3 * DISTANCEPOINT, startY);currentPoint5 = new Point(startX, startY2);currentPoint6 = new Point(startX + DISTANCEPOINT, startY2);currentPoint7 = new Point(startX + 2 * DISTANCEPOINT, startY2);canvas.drawBitmap(bitmap1, currentPoint1.getX(),currentPoint1.getY(), mPaint);canvas.drawBitmap(bitmap2, currentPoint2.getX(),currentPoint2.getY(), mPaint);canvas.drawBitmap(bitmap3, currentPoint3.getX(),currentPoint3.getY(), mPaint);canvas.drawBitmap(bitmap4, currentPoint4.getX(),currentPoint4.getY(), mPaint);canvas.drawBitmap(bitmap5, currentPoint5.getX(),currentPoint5.getY(), mPaint);canvas.drawBitmap(bitmap6, currentPoint6.getX(),currentPoint6.getY(), mPaint);c

更多推荐

Android平台分享弹出动画

本文发布于:2024-03-10 09:00:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727538.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弹出   动画   平台   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!