最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Android 自定义view实现进度条加载效果实例代码
时间:2022-06-25 23:22:34 编辑:袖梨 来源:一聚教程网
效果如下:
分析图:
代码如下:
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去做,而不用图片的话
最终的效果图还是这样的:
相关文章
- 时空中的绘旅人天宇之间怎么玩 绘旅人天宇之间活动玩法介绍 12-25
- QQ2024年度报告怎么看 2024qq年度报告玩法介绍 12-25
- 归龙潮珠砂什么时候up 归龙潮红缘绮梦卡池介绍 12-25
- 王者荣耀S38赛季有什么更新 12-25
- 王者荣耀S38赛季有什么更新 王者荣耀S38赛季更新内容介绍 12-25
- 世界之外12.25有什么更新 世界之外12月25日更新内容介绍 12-25