根據從前面的學習,初步學會了基本的自定義控制項的方法,就開始學習者寫一下自定義進度條玩哇
下面是效果圖
下面的是**部分
首先自定義屬性
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...