效果如下:
分析图:
代码如下:
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去做,而不用图片的话
最终的效果图还是这样的:
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级