蚂蚁森林怎么获取能量(蚂蚁森林能量800是怎么获得)
- 时间:
- 浏览:84
- 来源:奥一装修网
蚂蚁森林能量800是怎么获得
旧驱动程序,它不存在。其实我还不够,哈哈。 。 。 最近,该公司的产品突然具有类似于支付宝蚂蚁森林的功能,并且其功能类似于支付宝蚂蚁森林的功能。看了支付宝蚂蚁森林的效果后,我打算先放一个控件,然后在公司的效果图出来后再放上。直接使用。首先,让我们大致看一下支付宝的蚂蚁林的效果图:支付宝蚂蚁林这是我到目前为止已经实现的效果图:自定义效果当我们得到这个需求时,先分析一波,不要开始工作否则,很容易将平板翻转。 。需要实现的功能有:1。定制小球,球内文字,上下浮动,消失动画; 2。根据数据动态添加小球,位置随机分布在小树周围,且不能重叠。这一点最重要,涉及随机位置生成算法的设计。好的,在确定了要实现的目标之后,我们可以开始逐步执行代码。
蚂蚁森林绿色能量是啥
自定义圆球这是比较容易实现的。画一个圆,然后在花园里画文字。使用属性动画统一实现动画。代码如下。更详细的注释不会一一解释。懒。。。 / ** * @作者:xiaohaibin。 * @时间:2018/1/5 * @邮件:xhb_@163。com * @github:https://github。com/xiaohaibin * @描述:自定义仿制支付宝蚂蚁森林水滴视图* /公共类WaterView扩展视图{私人油漆;私有ObjectAnimator mAnimator; / ** *文本颜色* / private int textColor = Color。parseColor(“69c78e”); / ** *水滴填充颜色* / private int waterColor = Color。parseColor(“c3f593”);*笔触颜色* / private int storkeColor = Color。parseColor(“69c78e”); / ** *描边线宽* /私有浮点strokeWidth = 0。5f; / ** *文本字体大小* /私有浮点型textSize = 36; / ** *应根据距离和距离计算半径的比例* /私人浮动比例; / ** *落球的半径* / private int mRadius = 30; / ** *球文本的内容* /私有String textContent =“ 3g”;公共WaterView(上下文上下文){super(上下文); init();}公共WaterView(上下文上下文,@ Nullable AttributeSet属性){super(上下文,属性); init();}公共WaterView(上下文上下文,@ Nullable AttributeSet属性,整数defStyleAttr){超级(上下文,属性,defStyleAttr); init();} private void init(){paint = new Paint();} @Override public void draw(Canvas canvas){super。draw(canvas); drawCircleView(画布);} @Override受保护的void onMeasure(int widthMeasureSpec,int heightMeasureSpec){super。onMeasure(widthMeasureSpec,heightMeasureSpec); setMeasuredDimension(Utils。dp2px(getContext(),(int)(2 *(mRadius + strokeWidth))),Utils。dp2px(getContext(),(int)(2 *(mRadius + strokeWidth))))))))))) @Override受保护的void onAttachedToWindow(){super。onAttachedToWindow(); start();} @Override受保护的void onDetachedFromWindow(){super。onDetachedFromWindow(); stop();} @Override受保护的void onVisibilityChanged(@NonNull ViewchangedView,int可见性){if(visibility == VISIBLE){start();} else {stop();}}私有void drawCircleView(画布画布){// sphere paint。setColor(waterColor); paint。setStyle(Paint。Style。FILL); canvas。drawCircle(Utils。dp2px(getContext(),mRadius),Utils。dp2px(getContext(),mRadius),Utils。dp2px(getContext(),mRadius),绘画); //绘制paint。setColor(storkeColor); paint。setStyle(Paint。Style。STROKE); paint。setStrokeWidth(Utils。dp2px(getContext(),(int)strokeWidth))); canvas。drawCircle(Utils。dp2px(getContext(),mRadius),Utils。dp2px(getContext(),mRadius),Utils。dp2px(getContext(),(int)(mRadius + strokeWidth)),绘画); //球形文字paint。setTextSize(textSize); paint。setColor(textColor);drawVerticalText(画布,Utils。dp2px(getContext(),mRadius),Utils。dp2px(getContext(),mRadius),textContent);}私有void drawVerticalText(画布画布,float centerX,float centerY,String文本){Paint。FontMetrics fontMetrics = paint。getFontMetrics(); float baseLine =-(fontMetrics。ascent + fontMetrics。descent)/ 2; float textWidth = paint。measureText(文本); float startX = centerX-textWidth / 2; float endY = centerY + baseLine; canvas。drawText(text,startX,endY,paint);} public void start(){if(mAnimator == null){mAnimator = ObjectAnimator。ofFloat(this,“ translationY”,-6。0f,6。0f,-6。0f ); mAnimator。setDuration(3500); mAnimator。setInterpolator(新的LinearInterpolator());mAnimator。setRepeatCount(ValueAnimator。INFINITE); mAnimator。start();}否则if(!mAnimator。isStarted()){mAnimator。start();}} public void stop(){if(mAnimator!= null){mAnimator 。cancel(); mAnimator = null;}} public float getProportion(){返回比例;} public void setProportion(浮动比例){this。proportion =比例;}}在此处动态添加小球。我通过使用集成的FrameLayout设置球数据并动态添加球相对简单。这里最重要的是随机和随机添加球的算法。解决此算法很容易。通过仔细观察支付宝蚂蚁森林的效果,我们可以发现一般的小球随机分布在树的正上方。因此,我想以小树的根为中心,以小树的高度为半径和扇形,并在扇形上方随机放置小球。
蚂蚁森林1分钱915能量
公式:坐标=旋转角度*半径*根据距离和距离计算圆(x1,y1)上任何点的坐标:x1 = x0 + r * cos(ao * 3。14 / 180)具体的实现代码如下:/ *** @作者:xiaohaibin。 * @时间:2018/1/5 * @mail:xhb_@163。com * @github:https://github。com/xiaohaibin * @描述:支付宝蚂蚁森林水滴能量* /公共类WaterFlake扩展了FrameLayout {私有OnWaterItemListener mOnWaterItemListener; / ** *小树坐标X * /私有浮动treeCenterX = 0; / ** *小树坐标Y * /私有浮动treeCenterY = 0; / ** *小树高* / private int半径= 80; / ** *起始角度* /私有双mStartAngle = 0; / ** *是否正在收集能量* /私有布尔isCollect = false; public WaterFlake(@NonNull上下文上下文){super(上下文);} public WaterFlake(@NonNull上下文上下文,@ Nullable AttributeSet attrs){super(上下文,attrs);}超级(上下文,属性,defStyleAttr);} @Override public boolean onTouchEvent(MotionEvent事件){if(event。getAction()== MotionEvent。ACTION_DOWN){int x =(int)event。getX(); int y =(int)event。getY(); Rect rect =新的Rect(); for(int i = 0; i modelList,float treeCenterX,float treeCenterY){this。treeCenterX = treeCenterX; this。treeCenterY = treeCenterY; for(int i = 0; i有很多方法可以实现小球放置的随机算法。这只是其中一种。如果写得不好,我希望您可以纠正它,并欢迎大家交流和学习。 代码中仍有一些地方需要改进。逐步更新。。。TODO优化随机球生成算法,以确保每个球尽可能不重叠。最后,附加了源代码链接: https://github。com/xiaohaibin/CustomWaterView如果您喜欢它,请给予Star支持谢谢~~~如果您认为这篇文章对您有所帮助,请不要寻求奖励。如果您喜欢我的文章,可以关注我和朋友们一起运行的微信,中浩将定期发布高质量的技术文章,以引起关注~~~欢迎关注“大花雕”微信公众号,欢迎加入“大花岛”技术交流组,一起分享,共同发展共同进步,欢迎加入“大华当”技术交流小组互相学习