用建立的方式來寫漸變的進度條:
public class myprogressview extends viewgroup
public myprogressview(context context, attributeset attrs)
@override
protected void onlayout(boolean b, int i, int i1, int i2, int i3)
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec) else
if (heightspecmode == measurespec.exactly || heightspecmode == measurespec.at_most) else
setmeasureddimension(mwidth, mheight);
}@override
protected void ondraw(canvas canvas)
/*進度條最大值
*/ float maxcount = 5;
float progress = currentcount / maxcount;
//切取
drawable drawable1 = getresources().getdrawable(r.drawable.shape_evaluate_grade_bg_3);
bitmap bmp = drawabletobitamp(drawable1);
//這裡需要處理高度大於0的問題,當高度為0的時候就不去繪製前景
if (progress > 0)
}/**
* drawable轉bitmap
* * @param drawable
* @return
*/private bitmap drawabletobitamp(drawable drawable)
int w = getwidth();
int h = getheight();
bitmap bitmap = bitmap.createbitmap(w, h, bitmap.config.argb_8888);
canvas canvas = new canvas(bitmap);
drawable.setbounds(0, 0, w, h);
drawable.draw(canvas);
return bitmap;
}public void setprogress(float f)
@override
public void onwindowfocuschanged(boolean haswindowfocus)
canvas錐形漸變進度條
這一切需要從乙個 簡單 的需求開始,在最開始對設計第一眼看到這張圖的時候,感覺挺簡單的嘛,直接用echarts餅圖模擬出來乙個就好了 然後上echarts試了一下發現實現不出來了 設計圖這邊採用的是錐形漸變,而echarts只有線性漸變和徑向漸變。然後準備換種方案,css就有錐形漸變,然後通過con...
水平漸變進度條的實現
最近在研究一些自定義繪製控制項,不可避免的會用到paint,gradient,先貼 public class progressview1 extends view private float mcursize public progressview1 context context public p...
iOS 環形漸變進度條實現
之前有人在找漸變進度條的效果,閒來無事就順手寫了乙個,然後畫了檢視層級,方便講解。環境資訊 mac os x 10.10.3 xcode 6.3.1 ios 8.3 效果圖 正文 首先需要搞定的就是檢視層級關係。可以看到,1.背景是有透明度的藍色 blueview 2.需要乙個從綠 黃 紅的漸變色,...