打造屬於自己的進度條(筆記)

2021-08-10 08:07:37 字數 3085 閱讀 6301

根據從前面的學習,初步學會了基本的自定義控制項的方法,就開始學習者寫一下自定義進度條玩哇

下面是效果圖

下面的是**部分

首先自定義屬性

name="loadview">

name="loadwidth"

format="dimension">20attr>

name="loadcolor"

format="color">0xffabababattr>

name="loadbackgroundcolor"

format="color">0xff343434attr>

name="backgroundcolor"

format="color">0xff565656attr>

name="textcolor"

format="color">0xffbcbcbcattr>

name="radius"

format="dimension">60attr>

name="loadtextsize"

format="dimension">28attr>

declare-styleable>

下面是自定義v進度條**

import android.content.context;

import android.content.res.typedarray;

import android.graphics.bitmap;

import android.graphics.bitmapfactory;

import android.graphics.canvas;

import android.graphics.paint;

import android.graphics.rect;

import android.graphics.rectf;

import android.util.attributeset;

import android.util.typedvalue;

import android.widget.progressbar;

/** * created by andream on 2017/11/4.

* 自定義動感載入圖

*/public

class

loadview

extends

progressbar

public

loadview(context context, attributeset attrs)

public

loadview(context context, attributeset attrs, int defstyleattr)

/*** 獲取自定義屬性

*@param attrs attrs

*/private

void

obtainstyledattrs(attributeset attrs)

/*** dp2sp

*@param dpval sp

*@return dp

*/private

intdp2sp(int dpval)

/*** sp2dp

*@param spval dp

*@return sp

*/private

intsp2dp(int spval)

@override

protected

synchronized

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

if (heightmode != measurespec.exactly)

super.onmeasure(widthmeasurespec, heightmeasurespec);

}@override

protected

synchronized

void

ondraw(canvas canvas)

if(mtarget!=mbmp)

bitmap target = bitmap.createbitmap(mtarget, 0, 0, mtarget.getwidth(), mtarget.getheight());

float sx = mwidth/2f - target.getwidth() / 2;

float sy = mheight/2f- target.getheight() / 2;

canvas.drawbitmap(target, sx, sy, mpaint);

mpaint.setcolor(textcolor);

mpaint.settextsize(textsize);

string progresstext= getprogress()+"%";

mpaint.gettextbounds(progresstext, 0, progresstext.length(), rect);//獲取文字寬高

canvas.drawtext(progresstext,mwidth/2f-rect.width()/2f,mheight/2f+rect.height()/2f,mpaint);

mpaint.setcolor(loadbackgroundcolor);

mpaint.setstyle(paint.style.stroke);

mpaint.setstrokewidth(loadwidth);

canvas.drawarc(oval, 0, 360, false, mpaint); //根據進度畫圓弧

mpaint.setcolor(loadcolor);

canvas.drawarc(oval, 270, (getprogress()*3.6f), false, mpaint); //根據進度畫圓弧

canvas.restore();}}

這就是全部的了,是不是感覺很

Ajax PHP打造等待進度條效果

1 解答48講ajxa常見問題 1 js指令碼快取問題 並不能顯示新寫 的結果,是因為js為了加速頁面執行,當前頁面會使用快取保持 當前呼叫的相同連線。為了開發時除錯方便可以在連線位址的後面增加乙個隨機函式。2 本地除錯js指令碼不起作用 答 因為使用ajxa傳遞引數的時候需要head支援,所以我們...

Flash打造美女影片指導進度條

我們製作乙個好看的影片匯入進度條。先看效果。img files beyondpic 2007 6 5 20070603234254 01.gif img 準備一幅 然後匯入到舞台,用滑鼠選中該圖,然後開啟對齊面板,設定如下。img files beyondpic 2007 6 5 200706032...

Flash打造美女影片指導進度條

我們製作乙個好看的影片匯入進度條。先看效果。img files beyondpic 2007 6 5 20070603234254 01.gif img 準備一幅 然後匯入到舞台,用滑鼠選中該圖,然後開啟對齊面板,設定如下。img files beyondpic 2007 6 5 200706032...