圓形 和柱形 動態增加的自定義view的製作

2021-07-13 07:04:14 字數 1774 閱讀 6978

自定義view 嘛~需要做以下處理:

ondraw--朱圖

onmeasure()--這裡主要是對監聽的處理

startanim--畫數字增加的動態效果

對畫筆的要求

paint arcpaint=newpaint();

//繪製圓弧

arcpaint.setstrokewidth(widthbg / 20);

//設定空心

arcpaint.setstyle(paint.style.stroke);

//防抖動

arcpaint.setdither(true);

// arcpaint.setantialias(true);//消除鋸齒

//連線處為圓弧

arcpaint.setstrokejoin(paint.join.round);

//畫筆的筆觸為圓角

arcpaint.setstrokecap(paint.cap.round);

arcpaint.setcolor(color.blue);

畫圓弧的增長

//圓弧範圍

rectf arcrect =newrectf(widthbg * 1 / 4, widthbg * 1 / 4, widthbg * 3 / 4, widthbg * 3 / 4);

//繪製背景大圓弧

canvas.drawarc(arcrect, -90, 360,false, arcpaint);

arcpaint.setcolor(color.green);

//繪製分數小圓弧

canvas.drawarc(arcrect, -90,num,false, arcpaint);

畫圓柱的上公升

下降自然用增加

//畫柱狀圖

path rectpath=newpath();

// float startheight = widthbg + 90 + rectagheight;

rectpath.moveto(500,600);

rectpath.lineto(500, 600-num);

arcpaint.setcolor(color.red);

canvas.drawpath(rectpath, arcpaint);

這裡需要提示一點

關於變數num

是用來動態監聽num的值的增長的

private voidstartanim() 

});animset.setduration(3000);

//在這裡可以新增多個的

animset.playtogether(arcanimator);

animset.start();

}

其中animset可以設定好幾個值的--220那個是我們實際賦值的

最後把startanim這個函式裝到onmeasure裡面既可以了

自定義圓形的ProgressBar

1.自定義圓形的progressbar 效果圖 圓形progressbar的樣式主要有以下幾個,我們這裡以progressbarstylelarge為例進行樣式的修改,其他的類似。首先看一下style android attr progressbarstylelarge 的原始碼,在 framewo...

自定義圓形的ProgressBar

1.自定義圓形的progressbar 效果圖 圓形progressbar的樣式主要有以下幾個,我們這裡以progressbarstylelarge為例進行樣式的修改,其他的類似。首先看一下style android attr progressbarstylelarge 的原始碼,在 framewo...

FLEX自定義面板1 自定義圓形和方形節點

1.概述 在flex3中,我們要實現這兩種節點,通常會採取繼承的方式 眾所周知繼承和類膨脹會帶來一些問題,如果僅僅因為顯示的不同而實現兩個不同的元件類並不是乙個很好的解決辦法。在flex4中,我們完全可以只定義乙個元件類來實現功能邏輯,而把顯示交給skin去處理 spark元件都繼承自skinnab...