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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android仿字節(jié)顏色自定義進(jìn)度條

瀏覽:21日期:2023-02-14 17:11:47

本文實(shí)例為大家分享了Android仿字節(jié)顏色自定義進(jìn)度條的具體代碼,供大家參考,具體內(nèi)容如下

效果展示

Android仿字節(jié)顏色自定義進(jìn)度條

代碼實(shí)現(xiàn)

第一步:編寫自定義屬性

res/values/attrs.xml

<?xml version='1.0' encoding='utf-8'?><resources> <declare-styleable name='MyLoadingView'><attr name='loading_color_one' format='color'/><attr name='loading_color_two' format='color'/><attr name='loading_color_three' format='color'/><attr name='loading_color_four' format='color'/><attr name='loading_color_five' format='color'/> </declare-styleable></resources>

第二步:編寫自定義java類

package com.wust.jingdutiao; import android.animation.ValueAnimator;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.graphics.drawable.ColorDrawable;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.util.TypedValue;import android.view.View;import android.view.animation.Animation; import androidx.annotation.Nullable; /** * ClassName: MyLodingView <br/> * Description: <br/> * date: 2021/7/21 15:59<br/> * * @author yiqi<br /> * @QQ 1820762465 * @微信 yiqiideallife * @技術(shù)交流QQ群 928023749 */public class MyLoadingView extends View { private int rect_color_one; private int rect_color_two; private int rect_color_three; private int rect_color_four; private int rect_color_five; private Paint rect_one_paint; private Paint rect_two_paint; private Paint rect_three_paint; private Paint rect_four_paint; private Paint rect_five_paint; private int mWidth; private int mHeight; private float[] mHeightRate = {1/16.0f,1/10.0f,1/8.0f}; private int HORIZONTAL_OFFSET = 5; private int bg_default_color; private ValueAnimator va; public MyLoadingView(Context context) {super(context); } public MyLoadingView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);initAttrs(context, attrs);initPaint();initAnima(); } public MyLoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initAttrs(context, attrs);initPaint();initAnima(); } //設(shè)置 屬性動(dòng)畫 private void initAnima() {va = ValueAnimator.ofInt(0, 4);va.setDuration(3000);va.setRepeatCount(ValueAnimator.INFINITE);va.setRepeatMode(ValueAnimator.RESTART);va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) {int value = (int) animation.getAnimatedValue();setRectColorByNum(value); }});postDelayed(new Runnable() { @Override public void run() {va.start(); }},500); } private void initAttrs(Context context, AttributeSet attrs) {//獲取用戶傳來(lái)的五種顏色TypedArray ty = context.obtainStyledAttributes(attrs, R.styleable.MyLoadingView); rect_color_one = ty.getColor(R.styleable.MyLoadingView_loading_color_one, Color.parseColor('#325AB4'));rect_color_two = ty.getColor(R.styleable.MyLoadingView_loading_color_two, Color.parseColor('#3C8CFF'));rect_color_three = ty.getColor(R.styleable.MyLoadingView_loading_color_three, Color.parseColor('#888888'));rect_color_four = ty.getColor(R.styleable.MyLoadingView_loading_color_four, Color.parseColor('#00C8D2'));rect_color_five = ty.getColor(R.styleable.MyLoadingView_loading_color_five, Color.parseColor('#78E6DC')); //獲取背景色try { ColorDrawable bg = (ColorDrawable) getBackground(); bg_default_color = bg.getColor();}catch (Exception e){ bg_default_color = Color.WHITE;} ty.recycle(); } //初始化畫筆 private void initPaint() {rect_one_paint = getPaintByColor(rect_color_one);rect_two_paint = getPaintByColor(rect_color_two);rect_three_paint = getPaintByColor(rect_color_three);rect_four_paint = getPaintByColor(rect_color_four);rect_five_paint = getPaintByColor(rect_color_five); } private Paint getPaintByColor(int Color) {Paint paint = new Paint();paint.setAntiAlias(true);paint.setDither(true);paint.setColor(Color);return paint; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {mWidth = MeasureSpec.getSize(widthMeasureSpec);mHeight = MeasureSpec.getSize(heightMeasureSpec);//讓其為正方形,并且寬高不能小于40mWidth = mHeight = Math.max(Math.min(mWidth, mHeight),dp2px(100));setMeasuredDimension(mWidth, mHeight); } private int dp2px(int value) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,value,getResources().getDisplayMetrics()); } @Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);//繪制矩形drawRect(canvas); } private void drawRect(Canvas canvas) {int centerX = mWidth/2;int centerY = mHeight/2;RectF rectOne = new RectF(centerX-HORIZONTAL_OFFSET,centerY-mWidth*mHeightRate[0],centerX+HORIZONTAL_OFFSET,centerY+mWidth*mHeightRate[0]);canvas.drawRoundRect(rectOne,5,5,rect_one_paint); RectF rectTwo = new RectF(centerX+HORIZONTAL_OFFSET*3,centerY-mWidth*mHeightRate[1],centerX+HORIZONTAL_OFFSET*5,centerY+mWidth*mHeightRate[1]);canvas.drawRoundRect(rectTwo,5,5,rect_two_paint); RectF rectThree = new RectF(centerX-HORIZONTAL_OFFSET*3,centerY-mWidth*mHeightRate[1],centerX-HORIZONTAL_OFFSET*5,centerY+mWidth*mHeightRate[1]);canvas.drawRoundRect(rectThree,5,5,rect_three_paint); RectF rectFour = new RectF(centerX+HORIZONTAL_OFFSET*7,centerY-mWidth*mHeightRate[2],centerX+HORIZONTAL_OFFSET*9,centerY+mWidth*mHeightRate[2]);canvas.drawRoundRect(rectFour,5,5,rect_four_paint); RectF rectFive = new RectF(centerX-HORIZONTAL_OFFSET*7,centerY-mWidth*mHeightRate[2],centerX-HORIZONTAL_OFFSET*9,centerY+mWidth*mHeightRate[2]);canvas.drawRoundRect(rectFive,5,5,rect_five_paint); } //根據(jù)屬性動(dòng)畫的 變化的值 給畫筆換不同的顏色 private void setRectColorByNum(int num){if (num == 0){ rect_one_paint.setColor(rect_color_one); rect_two_paint.setColor(bg_default_color); rect_three_paint.setColor(bg_default_color); rect_four_paint.setColor(bg_default_color); rect_five_paint.setColor(bg_default_color);}else if (num == 1){ rect_one_paint.setColor(bg_default_color); rect_two_paint.setColor(rect_color_two); rect_three_paint.setColor(rect_color_three); rect_four_paint.setColor(bg_default_color); rect_five_paint.setColor(bg_default_color);}else if (num == 2){ rect_one_paint.setColor(bg_default_color); rect_two_paint.setColor(bg_default_color); rect_three_paint.setColor(bg_default_color); rect_four_paint.setColor(rect_color_four); rect_five_paint.setColor(rect_color_five);}else if (num == 3){ rect_one_paint.setColor(rect_color_one); rect_two_paint.setColor(rect_color_two); rect_three_paint.setColor(rect_color_three); rect_four_paint.setColor(rect_color_four); rect_five_paint.setColor(rect_color_five);}invalidate(); }}

第三步:使用

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' tools:context='.MainActivity' android:gravity='center'> <com.wust.jingdutiao.MyLoadingViewandroid:layout_width='100dp'android:layout_height='100dp'/> </LinearLayout>

到此為止,效果便可以完美實(shí)現(xiàn)了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 好杂志网-首页| 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 定坤静电科技静电消除器厂家-除静电设备 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 耐驰泵阀管件制造-耐驰泵阀科技(天津)有限公司| 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 搪瓷反应釜厂家,淄博搪瓷反应釜-淄博卓耀 | 苹果售后维修点查询,苹果iPhone授权售后维修服务中心 – 修果网 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 |