實心圓形的進度條,可做報表使用

2021-09-08 01:59:57 字數 2033 閱讀 2736

先上效果圖

模擬學生試題結果的統計,但作用絕對不止用於此

上**:

乙個自定義圓形圖示

參照

public class circlepro extends view 

/*** 這個構造引數,當在布局檔案中引用該view的時候,必須重寫該建構函式

* @param context

* @param attrs

*/public circlepro(context context, attributeset attrs)

/*** 根據文字的

* @param text

* @param textsize

* @return

*/public float gettextwidth(string text,float textsize)

@override

protected void ondraw(canvas canvas)

//畫當前進度的字串

paint.setcolor(color.black);

paint.settextsize(30.f);

percent = mschedual+" %";

canvas.drawtext(percent, width/2-gettextwidth(percent,30)/2,height/2+paint.gettextsize()*3/8, paint);//字型的高度=paint.gettextsize()*3/4

//畫空心圓

paint.setcolor(circleback);

paint.setstyle(paint.style.stroke);

canvas.drawcircle(width/2,height/2,circlehalf, paint);

}public void setmschedual(float f)

}

public class circlecardadapter extends baseadapter 

@override

public int getcount()

@override

public object getitem(int position)

return list.get(position);

}@override

public long getitemid(int position)

@override

public view getview(int position, view convertview, viewgroup viewgroup) else

string orderstring="第"+positionset.bigpos+"大題,第"+positionset.smallpos+"小題";

vh.bigquestionorder=positionset.bigpos;

vh.smallquestionorder=positionset.smallpos;

vh.tvbigquestionorder.settext("第"+positionset.bigpos+"大題");

vh.tvsmallquestionorder.settext("第"+positionset.smallpos+"小題");

vh.circle.setmschedual(countbigcirclearraylist.get(positionset.bigpos).getcountsmallcirclearraylist().get(positionset.smallpos).getprogress());

return convertview;

}public class viewholder

public int bigquestionorder;

public int smallquestionorder;

}}核心**就這些,具體**見

使用canvas畫圓形(弧形)進度條

效果如下 可以展示整個圓 半圓以及任意角度弧形 左右對稱 的進度條。整體思路如下 完整 如下 關於動畫部分,可以使用requestanimationframe做優化,函式改寫如下 function draw percent,sr if sr math.pi 2 sr 3 2 math.pi var ...

帶進度的圓形進度條的實現

今天通過自定義view來實現乙個帶進度的圓形進度條,實現的最終效果如下圖所示 現在來講一下設計的思路 首先這個進度條可以自定義小圓角矩形的數量 小圓角矩形大小 小圓角矩形的圓角角度 未完成進度時的顏色,完成進度時的顏色 文字大小 文字顏色 圓形半徑,所以需要自定義這些引數 那如何畫這個圓形進度呢?我...

圓形進度條ProgressBar 的實現方式

一 通過動畫實現 定義res anim loading.xml如下 html view plain copy print?xmlversion 1.0 encoding utf 8 animation list android oneshot false xmlns android item and...