日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Android仿字節顏色自定義進度條

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

本文實例為大家分享了Android仿字節顏色自定義進度條的具體代碼,供大家參考,具體內容如下

效果展示

Android仿字節顏色自定義進度條

代碼實現

第一步:編寫自定義屬性

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 * @技術交流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(); } //設置 屬性動畫 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) {//獲取用戶傳來的五種顏色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); } //根據屬性動畫的 變化的值 給畫筆換不同的顏色 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>

到此為止,效果便可以完美實現了。

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

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品magnet| 免费久久精品| 亚洲一区二区三区久久久| 亚洲久久一区| 亚洲3区在线| jizzjizz中国精品麻豆| 日韩av福利| 深夜视频一区二区| 影音先锋久久精品| 国产综合精品一区| 国产精品一区二区精品视频观看| 亚洲精选成人| 久久99久久人婷婷精品综合| 国产精品久久国产愉拍| 亚洲免费福利一区| 国产成人精品免费视| 天堂中文av在线资源库| 日本亚洲不卡| 一区二区三区视频免费观看| 日韩有吗在线观看| 黄色在线观看www| 国产精品色婷婷在线观看| 国产成人精品一区二区免费看京| 日韩伦理福利| 波多野结衣一区| 国产精品一区三区在线观看| 蜜桃视频免费观看一区| 男人的天堂亚洲一区| 国产精品美女| 玖玖玖国产精品| 亚洲+小说+欧美+激情+另类| 日产精品一区二区| 日韩成人a**站| 欧美一区自拍| 日韩av一区二区在线影视| 亚洲2区在线| 在线亚洲国产精品网站| 午夜欧美精品久久久久久久| 日韩大片在线| 成人小电影网站| 黑森林国产精品av| 九九精品调教| 国产精品久久久久蜜臀| 国产伦乱精品| 久久精品欧洲| 成人精品高清在线视频| 人人精品亚洲| 99视频一区| 国产欧美亚洲精品a| 美女精品久久| 97精品中文字幕| 日韩精品91亚洲二区在线观看| 国产精品黄色| 黄色欧美日韩| 国产亚洲久久| 99国内精品| 国产精品99久久免费| 超碰在线99| 精品视频在线观看网站| 亚洲精品在线影院| 欧美日韩尤物久久| 国产真实久久| 色8久久久久| 国产毛片精品| 国产另类在线| 亚洲深夜av| 91精品电影| 久久久久久美女精品| 午夜一级久久| 中文在线а√天堂| 精品久久久网| 婷婷国产精品| 亚洲开心激情| 激情国产在线| 精品亚洲免a| 亚洲欧美久久精品| 一区二区国产在线观看| 久久a爱视频| 国产一区调教| 亚洲区第一页| 久久久久久黄| 国产成人1区| 综合欧美亚洲| 综合国产精品| 视频在线观看国产精品| 91精品国产经典在线观看| 国产福利一区二区精品秒拍 | 欧美日韩激情在线一区二区三区| 日韩中文字幕不卡| 你懂的亚洲视频| 欧美国产91| 国产精品99精品一区二区三区∴| 日韩欧美二区| 国内激情久久| 婷婷综合在线| 欧美不卡高清| 四虎精品永久免费| 亚洲成人不卡| 国产午夜久久av| 99成人在线| av资源亚洲| 午夜久久av | 蜜臀av免费一区二区三区| 一区二区国产精品| 久久人人97超碰国产公开结果| 西西人体一区二区| 国产a亚洲精品| 黄色国产精品| 欧美国产小视频| 日本va欧美va精品| 亚洲二区在线| 国产一区二区三区不卡视频网站| 欧美午夜精彩| 国产麻豆精品| 国产亚洲福利| 桃色一区二区| 蜜臀a∨国产成人精品| 热三久草你在线| 99在线观看免费视频精品观看| 嫩草伊人久久精品少妇av杨幂| 日韩在线看片| 国产精品日韩精品中文字幕| 亚洲少妇诱惑| 99热国内精品| 国产精品尤物| 日本va欧美va瓶| 亚洲精品一区二区妖精| 亚洲影院天堂中文av色| 欧美在线不卡| 欧美午夜不卡影院在线观看完整版免费| 久久午夜影院| 综合激情一区| 黄色亚洲在线| 国产精品男女| 清纯唯美亚洲综合一区| 亚洲一区国产| 久久国产99| 午夜在线精品偷拍| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲一区二区免费看| 日韩影院在线观看| 久久午夜精品一区二区| 免费一区二区视频| 蜜臀av亚洲一区中文字幕| 免费在线观看精品| 合欧美一区二区三区| 激情久久中文字幕| 91精品国产成人观看| 亚洲成人二区| 青青国产91久久久久久| 国产高清一区| 动漫av一区| 九九九精品视频| 日韩综合一区二区| 国产精品va视频| 国产精品国码视频| 日韩va亚洲va欧美va久久| 免费欧美在线视频| 日本午夜精品| 国产高清日韩| 久久精品av| 国产精品88久久久久久| 日韩中文字幕91| 一二三区精品| 欧美国产极品| 国产精品色在线网站| 超碰成人av| 久久五月天小说| 色综合视频一区二区三区日韩 | 日韩欧美中文字幕在线视频| 日韩精品导航| 精品久久久中文字幕| 福利在线免费视频| 亚洲一区日韩在线| 亚州av一区| 韩国女主播一区二区三区| 激情综合婷婷| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲精品亚洲人成在线观看| 开心激情综合| 日韩精品欧美| 国产欧美一区二区三区米奇| 精品国产a一区二区三区v免费| 亚洲高清毛片| 亚洲一二三区视频| 精品国产欧美| 色天使综合视频| 亚洲精品伊人| 美女久久久久久| 久久影视一区| 亚洲美女久久| 免费精品一区| 久久久久免费av| 日韩国产欧美在线播放| 国产一区二区视频在线看| 国产精品对白久久久久粗| 在线一区二区三区视频| 欧美国产专区| 91精品久久久久久久久久不卡| 日韩精品91亚洲二区在线观看|