电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android自定義圓形進度條效果

瀏覽:2日期:2022-09-19 13:16:00

本文實例為大家分享了Android自定義圓形進度條效果的具體代碼,供大家參考,具體內容如下

1 控件 RoundProgress

package listview.tianhetbm.p2p.ui;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;import android.util.Log;import android.view.View;import listview.tianhetbm.p2p.R;/** * @date:2015/9/14 * @author:dongxiaogang * @description: 自定義圓形進度條 */public class RoundProgress extends View { private Paint paint = new Paint(); private int roundColor; private int roundProgressColor; private int textColor; private float textSize; private float roundWidth; private int max = 100; private int progress = 50; public RoundProgress(Context context) {this(context, null); } public RoundProgress(Context context, AttributeSet attrs) {this(context, attrs, 0); } public RoundProgress(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.RoundProgress);//圓環的顏色roundColor = ta.getColor(R.styleable.RoundProgress_roundColor, Color.RED);//圓環進度的顏色roundProgressColor = ta.getColor(R.styleable.RoundProgress_roundProgressColor, Color.GREEN);//中間進度百分比文字字符串的顏色textColor = ta.getColor(R.styleable.RoundProgress_textColor, Color.GREEN);//中間進度百分比的字符串的字體大小textSize = ta.getDimension(R.styleable.RoundProgress_textSize, 15);//圓環的寬度roundWidth = ta.getDimension(R.styleable.RoundProgress_roundWidth, 5);ta.recycle(); } @Override protected void onDraw(Canvas canvas) {//第一步:繪制一個最外層的圓paint.setColor(roundColor);paint.setStrokeWidth(roundWidth);paint.setStyle(Paint.Style.STROKE);paint.setAntiAlias(true);int center = getWidth() / 2;int radius = (int) (center - roundWidth / 2-45);//canvas.drawCircle(center, center, radius, paint);RectF oval = new RectF(center - radius, center - radius, center + radius, center + radius);canvas.drawArc(oval, 135, 270, false, paint);//第二步:繪制正中間的文本float textWidth = paint.measureText(progress + '%');paint.setColor(textColor);paint.setTextSize(textSize);paint.setStrokeWidth(0);canvas.drawText(progress + '%', center - textWidth / 2, center + textSize / 2, paint);//第三步:/** * 參數解釋: * oval:繪制弧形圈所包含的矩形范圍輪廓 * 0:開始的角度 * 360 * progress / max:掃描過的角度 * false:是否包含圓心 * paint:繪制弧形時候的畫筆 *///RectF oval = new RectF(center - radius, center - radius, center + radius, center + radius);paint.setColor(roundProgressColor);paint.setStrokeWidth(roundWidth);paint.setStyle(Paint.Style.STROKE);canvas.drawArc(oval, 135, 270 * progress / max, false, paint);Log.e('測試角度',(270 * progress / max)+'');Paint mp=new Paint();mp.setAntiAlias(true);Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.tiger);int bitmapHeight = bitmap.getHeight()/2;int bitmapWidth = bitmap.getWidth()/2;//canvas.translate(-center, center);float y=0f,x=0f;//if(270 * progress / max<=45){ y = (float) (center-bitmapWidth - (radius) * Math.cos((270 * progress / max+225)*Math.PI/180)); x = (float) (center-bitmapWidth + (radius) * Math.sin((270 * progress / max+225)*Math.PI/180));//} //canvas.translate(center, center*2); Log.e('測試角度', y + '-----' + x); canvas.drawBitmap(bitmap, x, y, mp); } public void setProgress(int progress){this.progress = progress;if(progress>100){ this.progress = 100;}postInvalidate(); }}2 xml 布局文件

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' android:layout_width='match_parent' android:layout_height='match_parent' android:gravity='center_horizontal'> <listview.tianhetbm.p2p.ui.RoundProgressandroid:layout_marginTop='30dp'android:layout_width='250dp'android:layout_height='250dp'android:layout_marginLeft='10dp'app:roundColor='@color/back_blue'app:roundProgressColor='@color/back_orange'android: app:roundWidth='10dp'app:textSize='18sp'app:textColor='@color/record_red'/></RelativeLayout>3 activity(主要代碼)

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main_three);ButterKnife.bind(this);new Thread(){ @Override public void run() { while (progress<80){ progress+=1; ce.setProgress(progress); try { Thread.sleep(50); } catch (Exception e) { e.printStackTrace(); } } }}.start();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 执业药师报名时间,报考条件,考试时间-首页入口 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 洛阳装修公司-洛阳整装一站式品牌-福尚云宅装饰 | 空压机网_《压缩机》杂志| 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 江西自考网 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 宜兴市恺瑞德环保科技有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 |