自定義圓形的ProgressBar

2022-06-25 11:45:10 字數 2507 閱讀 7714

1.自定義圓形的progressbar

效果圖:

圓形progressbar的樣式主要有以下幾個,我們這裡以progressbarstylelarge為例進行樣式的修改,其他的類似。

首先看一下style="?android:attr/progressbarstylelarge"的原始碼,在\frameworks\base\core\res\res\values\styles.xml

看到這一行@android:drawable/progress_large_white有木有,我們去看一下它的原始碼,在\frameworks\base\core\res\res\drawable\progress_large_white.xml

看到這一行 android:drawable="@drawable/spinner_white_76" 我們就明白了,原來它在這裡放了一張,進行旋轉。

接下來我定義自己的progressbarstyle:

首先我們先找一張加入我們的專案中(如一開始的效果),然後在drawable下新建progress_large.xml檔案

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

在 \value\style.xml中定義myprogressbarstylelarge

最後在progressbar中使用我們自己定義的style,android:indeterminateduration="700"指定旋轉的速度,這樣我們就可以根據自己的需要來定義progressbar的樣式。

定義res/anim/progress_large_loading.xml如下:

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

在我們定義的style中引入@anim/progress_large_loading

定義res/drawable/progress_large_shape.xml如下:

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

在我們定義的style中引入@drawable/progress_large_shape

1.自定義圓形的progressbar

效果圖:

圓形progressbar的樣式主要有以下幾個,我們這裡以progressbarstylelarge為例進行樣式的修改,其他的類似。

首先看一下style="?android:attr/progressbarstylelarge"的原始碼,在\frameworks\base\core\res\res\values\styles.xml

看到這一行@android:drawable/progress_large_white有木有,我們去看一下它的原始碼,在\frameworks\base\core\res\res\drawable\progress_large_white.xml

看到這一行 android:drawable="@drawable/spinner_white_76" 我們就明白了,原來它在這裡放了一張,進行旋轉。

接下來我定義自己的progressbarstyle:

首先我們先找一張加入我們的專案中(如一開始的效果),然後在drawable下新建progress_large.xml檔案

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

在 \value\style.xml中定義myprogressbarstylelarge

最後在progressbar中使用我們自己定義的style,android:indeterminateduration="700"指定旋轉的速度,這樣我們就可以根據自己的需要來定義progressbar的樣式。

定義res/anim/progress_large_loading.xml如下:

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

在我們定義的style中引入@anim/progress_large_loading

定義res/drawable/progress_large_shape.xml如下:

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

在我們定義的style中引入@drawable/progress_large_shape

Android定義圓形ProgressBar

我們以progressbarstylelarge為例進行探索,找到這個布局檔案,原始碼如下 同樣一眼看出 indeterminatedrawable 便是主角了,繼續看一下progress large white原始碼,如下 看到這裡就透徹了,就是在這裡spinner white 76進行不停的旋轉...

自定義圓形Imageview

1 學習一定要善於總結,和敢於使用新的知識 2 一直使用的都是別人寫好的控制項,今天趁著國慶放假有時間,嘗試自己寫經常要用到的框架 3 知識總結 一 用於建立canvas的bitmap不能是已經存在的bitmap 二 這個自定view中遇到乙個坑就是的大小和遮罩大小不匹配是,需要我們對bitmap做...

自定義圓形 ImageView

android預設的imageview是矩形的,為了達到圓形的目的,需要自定義控制項,繼承imageview,重寫ondraw函式。最終效果 具體步驟 1.先根據控制項的短的一邊為半徑繪製乙個圓形 bitmap bitmap bitmapdrawable drawable getbitmap int...