效果如下:
分析图:
代码如下:
packagecom.example.dotloadview; importandroid.content.Context; importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; importandroid.graphics.Canvas; importandroid.graphics.Paint; importandroid.os.Handler; importandroid.util.AttributeSet; importandroid.view.View; /** * Created by zhouguizhi on 6/18/15. */ publicclassDotLoadProgressViewextendsView { privatebooleanisStart =false; privateintdotIndex =0;//点下面的角标 privateintdotNumber =0; privatePaint mPaint; privateintpaddingTop =50; privateintpaddingBottom =50; privateintpaddingLeft =30; privateintpaddingRight =30; privateHandler mHandler =newHandler(); privatelongDELAY_TIME =300; privateBitmap bitmap; privateintitemDotSpace =10;//二个点之间的距离 privateBitmap moveBitmap ; privateRunnable mRunnable =newRunnable() { @Override publicvoidrun() { if(dotNumber !=0){ dotIndex = (dotIndex +1) % dotNumber; } invalidate(); mHandler.postDelayed(mRunnable, DELAY_TIME); } }; publicDotLoadProgressView(Context context, AttributeSet attrs) { super(context, attrs); moveBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.active_dot); init(); } privatevoidinit() { mPaint =newPaint(Paint.ANTI_ALIAS_FLAG); mPaint.setStyle(Paint.Style.FILL); mPaint.setDither(true); mPaint.setAntiAlias(true); } @Override protectedvoidonDraw(Canvas canvas) { super.onDraw(canvas); for(inti=0;i
二个点其实是图片,在网上别人项目中拿出来用的,如果感觉那个点图片大了的话,有二个办法,第一叫你们美工切小点,第二就是通过drawable.setBound()去限制他大小了,我在这其实是偷懒,没有那么做,当然这点你也可以通过shade去做,而不用图片的话
最终的效果图还是这样的:
凡尔赛法环免广告版 最新版v1.69.1
下载天煞异种 安卓版v1.0.21
下载十三月 (Undecember)最新官方中文版v3.26.0200
下载我不是废柴无限99999钻999999金币游戏 不减反增版v1.2.16
下载我的女友是声优免广告 安卓版v1
我的女友是声优免广告是一款非常好玩的模拟经营类手游,玩家在游
石器帝国去广告版 v8
石器帝国免广告版是游戏的破解版本,在该版本中为玩家去除了广告
校园恋爱模拟器真人版去广告版 v0.0.7
校园恋爱模拟器真人版免广告版是游戏的破解版本,在该版本中为玩
教练我要开球馆内置菜单修改器 安卓版v1.5.4
教练我要开球馆内购版是一款模拟经营类游戏,玩家们将在游戏中创
我的游轮无限砖石 安卓版v1.7.0
我的游轮无限金币钻石版是一款模拟经营类游戏,你将成为一艘游轮