Xamarin Forms 進度條控制項

2021-07-11 12:06:40 字數 2935 閱讀 1278

本文翻譯: 裡面都是胡說的,如果看不懂可以聯絡郵箱

源**:

最近作者需要做乙個簡單的圓形的等待控制項在乙個xamarin forms應用,效果可以看

看起來很容易做,不知道怎麼微軟就沒有弄個這麼好看,微軟沒有,我們來直接做,看起來這個很簡單

原來的進度條是乙個線,沒有uwp那個ring,我要做乙個,可以使用本地控制、自定義渲染器渲染、使用元件裡面弄很多我之前做的、到nuget找,這些都覺得不是我要的。

看到他們沒有,我就很高興,我可以做乙個很厲害的,自然這裡我是原文的那個,寫了xaml的大神

我首先拿出乙個本子,我應該弄向量圖形,在xamarin原生還沒有,我會為每個平台定製渲染,所以他不支援我不能使用,我想到使用,向量,既然想要我如何讓很多看起來是乙個

我想到簡單使用兩圖,實際對稱兩圖是表示4圖,不停覆蓋的兩個表示進度,兩個顏色不同

可以在:/circularprogress/circularprogress.droid/resources/drawable

兩個儲存格式png,乙個圖表示0-50%,我們叫第一圖「completed」,第二「pending」,顏色深的是第一,進度我們需要乙個completed,兩個pending,我們先放completed,然後在它上面放pending,在pending對面放pending,第乙個圖在**叫「progress1」,第二「background1」,第二個覆蓋第乙個,第三個pending旋轉180,總的乙個藍色圓,這是0%

25%:我們旋轉pending第二個,可以讓看到下面的圖,這個我們覆蓋原來的pending因為顏色一樣,所以我們就可以看到25%

50%:我們需要改變,兩個completed,乙個pending,pending覆蓋completed,但是只是覆蓋乙個,他們的層次:

可以讓pending覆蓋右邊的completed,超過50%讓pending右旋

如果覺得上面說的還是不知道,可以看**

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using xamarin.forms;

namespace circularprogress

private view createimage(string v1)

public

static bindableproperty progressproperty =

bindableproperty.create("progress", typeof(double), typeof(circularprogresscontrol), 0d, propertychanged: progresschanged);

private

static

void

progresschanged(bindableobject bindable, object oldvalue, object newvalue)

static

double clamp(double

value, double min, double max)

private

void

handleprogresschanged(double oldvalue, double p)

double rotation = 360 * p;

background1.rotation = rotation;

}else

double rotation = 360 * p;

background2.rotation = rotation;}}

public

double progress

set }}

}

我們需要把放在不同平台的資料夾,ios放在resources資料夾,android放在 androidresource

我們把控制項放mainpage.xaml

<?xml version="1.0" encoding="utf-8" ?>

xmlns=""

xmlns:x=""

x:class="circularprogress.mainpage"

xmlns:local="clr-namespace:circularprogress"

backgroundcolor="white">

x:name="progresscontrol"

progress="0"

horizontaloptions="center"

verticaloptions="center"

widthrequest="60"

heightrequest="60"/>

grid>

contentpage>

我們讓time進度加0.1每0.02s

namespace circularprogress

private

bool

ontimer()}}

不使用自定義渲染,可以在各個平台沒有使用厲害的技術覆蓋兩個圖做出從0-100%,可以使用不同角度表示0.001

本文:

進度條,步驟條,

1,記錄一次步驟條來實現人數不同顯示的進度不同 效果如圖 廢話不多說 上 html檔案 已有 位武魂使共赴蒼嵐 3w預約 5w預約 10w預約 20w預約 30w預約 css awards progress awards progress cur awards progress cur.item0 ...

ios弧形進度條 iOS 圓形進度條

釋放雙眼,帶上耳機,聽聽看 今天產品要弄乙個圓形的進度條 有很多開源的進度條不用,非要弄這種效果,就不吐槽了,還是想想怎麼實現 廢話就不多說了 直接上 import inte ce roundprogressview uiview 進度條顏色 property strong,nonatomic ui...

ios弧形進度條 ios 圓形進度條

今天產品要弄乙個圓形的進度條 有很多開源的進度條不用,非要弄這種效果,就不吐槽了,還是想想怎麼實現 廢話就不多說了 直接上 import inte ce roundprogressview uiview 進度條顏色 property strong,nonatomic uicolor progress...