ProgressBar(進度條)-自定義圓形進度條
相信你看完2會吐槽,臥槽,這麼坑爹,拿個動畫來坑人,哈哈,實際開發中都這樣,當然上述這種情況只適用於不用顯示進度的場合,如果要顯示進度的場合就沒用處了,好吧,接下來看下網上一個簡單的自定義圓形進度條!程式碼還是比較簡單,容易理解,又興趣可以看看,或者進行相關擴充套件~
執行效果圖:
實現程式碼:
自定義View類:
/** * Created by Jay on 2015/8/5 0005. */publicclassCirclePgBarextendsView{privatePaint mBackPaint;privatePaint mFrontPaint;privatePaint mTextPaint;privatefloat mStrokeWidth =50;privatefloat mHalfStrokeWidth = mStrokeWidth /2;privatefloat mRadius =200;privateRectF mRect;privateint mProgress =0;//目標值,想改多少就改多少privateint mTargetProgress =90;privateint mMax =100;privateint mWidth;privateint mHeight;publicCirclePgBar(Context context){super(context); init();}publicCirclePgBar(Context context,AttributeSet attrs){super(context, attrs); init();}publicCirclePgBar(Context context,AttributeSet attrs,int defStyleAttr){super(context, attrs, defStyleAttr); init();}//完成相關引數初始化privatevoid init(){ mBackPaint =newPaint(); mBackPaint.setColor(Color.WHITE); mBackPaint.setAntiAlias(true); mBackPaint.setStyle(Paint.Style.STROKE); mBackPaint.setStrokeWidth(mStrokeWidth); mFrontPaint =newPaint(); mFrontPaint.setColor(Color.GREEN); mFrontPaint.setAntiAlias(true); mFrontPaint.setStyle(Paint.Style.STROKE); mFrontPaint.setStrokeWidth(mStrokeWidth); mTextPaint =newPaint(); mTextPaint.setColor(Color.GREEN); mTextPaint.setAntiAlias(true); mTextPaint.setTextSize(80); mTextPaint.setTextAlign(Paint.Align.CENTER);}//重寫測量大小的onMeasure方法和繪製View的核心方法onDraw()@Overrideprotectedvoid onMeasure(int widthMeasureSpec,int heightMeasureSpec){super.onMeasure(widthMeasureSpec, heightMeasureSpec); mWidth = getRealSize(widthMeasureSpec); mHeight = getRealSize(heightMeasureSpec); setMeasuredDimension(mWidth, mHeight);}@Overrideprotectedvoid onDraw(Canvas canvas){ initRect();float angle = mProgress /(float) mMax *360; canvas.drawCircle(mWidth /2, mHeight /2, mRadius, mBackPaint); canvas.drawArc(mRect,-90, angle,false, mFrontPaint); canvas.drawText(mProgress +"%", mWidth /2+ mHalfStrokeWidth, mHeight /2+ mHalfStrokeWidth, mTextPaint);if(mProgress < mTargetProgress){ mProgress +=1; invalidate();}}publicint getRealSize(int measureSpec){int result =1;int mode =MeasureSpec.getMode(measureSpec);int size =MeasureSpec.getSize(measureSpec);if(mode ==MeasureSpec.AT_MOST || mode ==MeasureSpec.UNSPECIFIED){//自己計算 result =(int)(mRadius *2+ mStrokeWidth);}else{ result = size;}return result;}privatevoid initRect(){if(mRect ==null){ mRect =newRectF();int viewSize =(int)(mRadius *2);int left =(mWidth - viewSize)/2;int top =(mHeight - viewSize)/2;int right = left + viewSize;int bottom = top + viewSize; mRect.set(left, top, right, bottom);}}}
然後在佈局檔案中加上:
<com.jay.progressbardemo.CirclePgBarandroid:layout_width="match_parent"android:layout_height="match_parent"/>
就是這麼簡單~
相關推薦
ProgressBar(進度條)-自定義圓形進度條
相信你看完2會吐槽,臥槽,這麼坑爹,拿個動畫來坑人,哈哈,實際開發中都這樣,當然上述這種情況只適用於不用顯示進度的場合,如果要顯示進度的場合就沒用處了,好吧,接下來看下網上一個簡單的自定義圓形進度條!程式碼還是比較簡單,容易理解,又興趣可以看看,或者進行相關擴充套件~
Android 三種常用實現自定義圓形進度條 ProgressBar 及demo
Android 自定義 進度條,一般有三種方式,最早一般使用UI給的圖片使用幀動畫,完成,後面兩種,一種是使用自定義顏色,另外一種是使用帶相近色的圖片加動畫完成。 下面具體 說一下三種方式,推薦使用第二種方式,如果這種達不到效果,或者比較高也可使用第一
自定義圓形進度條ProgressBar的三種方式
進度條預設是不確定(indeterminate=true)Android進度條 Android進度條有4種風格可以使用。 預設值是progressBarStyle。 設定成progressBarStyleSmall後,圖示變小。 設定成progressBarStyleLarge後,圖示變大 設定成progr
【Android進度條】三種方式實現自定義圓形進度條ProgressBar
總結了3種方法: 1.多張圖片切換 2.自定義顏色 3.旋轉自定義圖片 其它: Android自定義控制元件NumberCircleProgressBar(圓形進度條)的實現:點選開啟連結 橫線帶數字進度條:點選開啟連結
自定義圓形進度條
CircleBarView package wanghuiqi.bawie.com.whq_yk_moni1.model; import android.animation.ValueAnimator; import android.content.Contex
自定義圓形進度條(一)
由於專案需要,需要自定義一個圓形進度條,效果如下: 1 建立什麼檔案? 具體的程式碼我會放在github上,所以暫時忽略attr檔案和activity_main2檔案 2 CustomCircleProgressBar packa
android自定義圓形進度條,實現動態畫圓效果
自定義圓形進度條效果圖如下:應用場景如動態顯示分數等。 view的自定義屬性如下attr.xml <?xml version="1.0" encoding="UTF-8"?> <resources> <declare-style
Android之自定義圓形進度條
在Android開發中,對於進度條想必大家不會陌生。例如,應用在執行一個耗時操作時,會通過展示一個進度條來顯示“載入中...”的動畫作為友好頁面以提高使用者體驗。對於這樣的進度條,最簡單的實現方式就是通過美工給我們切幾張不同的圖片,最後通過幀動畫的方式來實現。通過幀動
Android自定義圓形進度條實現程式碼
基本思路是這樣的: 1.首先繪製一個實心圓 2.繪製一個白色實心的正方形,遮住實心圓 3.在圓的中心動態繪製當前進度的百分比字元 4.繪製一個與之前實心圓相同顏色的空心圓 5.逐漸改變當前的百分比 6.根據百分比,逐漸改變正方形的大小,逐漸減小正方形的底部y軸的座標,不斷重繪
自定義View之簡單自定義圓形進度條
達到的效果如下: 從上面的效果可以看出,主要有以下幾個自定義屬性: 1、背景顏色 2、進度扇形顏色 3、半徑 4、起始角度 因此,在attrs.xml中定義如下屬性: <?xml version="1.0" encoding="utf-8
Android自定義圓形進度條
前言: 看到別人寫的那些個酷炫的動畫,心裡癢癢的,於是,自己就開始了自定義View的探索之路。如果對自定義View還不是很熟,在看我這篇文章之前,我覺得你最好先看這篇文章: 自定義View,有這一篇就夠了。 正好公司有這樣一個需求:
一步一步帶你實現自定義圓形進度條(詳解)
每次看到別人做出炫酷的都會想,這個應該很難吧?這是心理上先入為主的就這麼認為了,其實實現很簡單,下面一步一步的詳細剖析自定義圓形進度條的步驟。 首先看效果圖: 篇幅有點長,耐心看完肯定get新技能。 看每一個檢視都包含了些什麼。 最
Android 自定義圓形進度條(圓環刻度)View
這個也剛好是公司軟體最近的需求需要到的,當初最早的版本是使用美工切好的圖,在上面的基礎上覆蓋一層背景,但多多少少的有些瑕疵。於是就自己自定義寫了一個View實現 效果圖 一、繪製圓環 圓環故名思意,第一個首先繪製是圓環 1:圓環繪製函式
自定義圓形進度條控制元件,及圓形漸變顏色實現
package com.xxx.views; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Colo
android 自定義圓形進度條(一)
現在app越來越要求介面很炫,比如一個載入資料的時候,通常是一個進度條在一直轉,直到從伺服器上獲取到資料,進度條才消失,而大部分都不會使用android自帶的進度條,因為不美,比如下面的進度條咋樣: 其實這個藍色背景是跟著進度條的進度顏色會發生改變,因為沒有找到哪種動態類
【Unity】-UIGI簡易血條的製作,環形血條,不規則血條,自定義圖形血條的製作
利用UIGI製作的簡易的自定義圖形血條 目錄 5.結語 1.效果展示
自定義view,可拖拽進度和吸附效果的圓形進度條
前言 最近接到一個需求,第一眼看到ui互動效果時,瞬間想對產品小哥說“尼瑪,這麼會玩,你咋不上天”。確認了具體互動細節,喝了兩口農夫三拳,開始了兩耳不聞窗外事,一心只想擼程式碼的過程。 先上ui效果 說明: 外圈弧形上面是進度的標記點,預設在12點位置,也是
自定義圓形progressbar(包含進度動畫效果)
效果圖敬上:) attrs檔案: < resources> < declare-styleable name=”CircleProgressBarStyle”> <
自定義Android進度條ProgressBar顏色的漸變設定
一、在drawable資料夾中新建my_progressbar.xml檔案 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.c
自定義一個進度條為圓角的progressbar
package com.xctz.niceman.customcanvas; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import andro