android 摇骰子android实现摇骰子

android实现摇骰子
首先看效果图:实现的功能主要是:1.手势左右滑动,骰钟开始晃动,一定时间后停止。2.手势上下滑动,打开骰钟,查看骰子点数。实现方式:在页面上画骰子和骰盅,二者分别画在不同的区域内;打开骰盅则显示骰子,盖上骰盅则隐藏骰子;骰盅的上下滑动和左右滑动的动画效果通过TranslateAnimation来实现(这里实际上可以用ondraw来画,不过相对来说TranslateAnimation会简单点,也因为实现的功能并不复杂所以可以直接用这个)。1.首先,创建页面xml在页面上先画上6个骰子、和骰盅:2.监听手势动作手势动作用GestureDetector.OnGestureListener接口实现,onFling方法中,通过传入的两个MotionEvent来计算是左右或者上下滑动publicbooleanonFling(MotionEventevent1,MotionEventevent2,floatvelocityX,floatvelocityY){if(thread!=null&&thread.isShaking())//如果骰子正在摇,不受理手势动作returntrue;floatdx=event1.getX()-event2.getX();floatdy=event1.getY()-event2.getY();if(Math.abs(dx)>=Math.abs(dy)){//判断左右距离大于上下距离,判断为左右滑动划if(Math.abs(dx)>DPUtils.dip2px(getActivity(),120)&&Math.abs(velocityX)>100)//手滑距离设定一个最小值,只有大于这个值才能开始摇,防止不小心滑到就摇listener.shake();returntrue;}if(dy0&&!isopen){//当前骰盅是关闭的则打开//打开animOpen();isopen=true;}returntrue;}。3.实现骰盅打开关闭功能/***关闭*@return*/protectedvoidanimClose(){if(cover==null)return;cover.clearAnimation();//先清除骰盅的动画TranslateAnimationanimation=newTranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0,Animation.ABSOLUTE,0-DPUtils.dip2px(getActivity(),100),Animation.ABSOLUTE,DPUtils.dip2px(getActivity(),0));//设置骰盅动画,从原高度的地方降到-100dp的位置,从而覆盖骰子animation.setDuration(100);//设置动画时间为100MSanimation.setFillAfter(true);//重要,设置图片停留在动画效果的最后位置,不设置的话默认图片是会返回到原始位置的,等于骰盅盖下来之后又重新打开了//增加动画的监听,盖下动画结束之后骰子隐藏AnimationListenerlistener=newAnimationListener(){@OverridepublicvoidonAnimationEnd(Animationanimation){for(inti=0;i

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/aQ6mnZmrz8.html

(0)

相关推荐