国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android簡單實現一個顏色漸變的ProgressBar的方法

2019-10-22 18:21:42
字體:
來源:轉載
供稿:網友

今天看一個教程,看到一個顏色漸變的ProgressBar,覺得有點意思,所以記錄一番。
下面這個是效果圖

Android,ProgressBar顏色漸變,ProgressBar漸變

顏色漸變的ProgressBar

看到效果圖可能會給人一種使用了高端技術的感覺,其實這個沒有那么高深,我們只是簡單改變了ProgressBar的樣式即可實現,下面說說實現方式。

首先我們簡單分析一下:

1 . 上面的樣式只是實現了顏色漸變,但它旋轉和呈現的方式仍然是一個圓形的ProgressBar。

2 . 這個ProgressBar實現了顏色漸變,我們就需要用到gradient,這個也比較簡單,只要我們配置開始,中間,結束顏色即可實現
明白了上面兩點我們就開始寫代碼。

首先,我們實現上面的布局,背景灰色,一個ProgressBar居中,一個TextView位于ProgressBar下方。
代碼如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context="cn.codekong.androidloading.MainActivity">  <RelativeLayout    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#de262a3b">    <ProgressBar      android:id="@+id/loading"      android:layout_width="60dp"      android:layout_height="60dp"      android:layout_centerInParent="true"      android:indeterminate="false"/>    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_below="@id/loading"      android:text="加載中"      android:textColor="#ffffff"      android:textSize="20sp"      android:layout_centerHorizontal="true"/>  </RelativeLayout></RelativeLayout>

上面其他代碼都很好理解,只有ProgressBar有一個 indeterminate 屬相需要解釋一下:

一般的ProgressBar都是用于顯示加載進度,如果我們直到當前的具體進度,那個這個屬性要設置為true,并設置正確的進度,如果我們也不知道正確的進度,則設置為false。

布局設置好了,下一步就是設置ProgressBar的漸變樣式,這里我們需要自定義一個Drawable。

自定義的Drawable代碼如下:

<?xml version="1.0" encoding="utf-8"?><rotate  xmlns:android="http://schemas.android.com/apk/res/android"  android:fromDegrees="0"  android:pivotX="50%"  android:pivotY="50%"  android:toDegrees="1080.0">  <shape android:innerRadiusRatio="3"      android:shape="ring"      android:thicknessRatio="10"      android:useLevel="false">    <gradient android:centerColor="#FFDC35"         android:centerY="0.50"         android:endColor="#CE0000"         android:startColor="#FFFFFF"         android:type="sweep"/>  </shape></rotate>

下面解釋一下上面的代碼:

外層的 rotate 表明這是一個旋轉的動畫,并且該規定了開始角度和結束角度,還有旋轉中心為圓心

內層的shape定義了形狀為一個環(ring),其中有三個屬性:

<1> innerRadiusRatio 為外環半徑和內徑的比值,比如外環半徑為30,內環半徑為10,則比值為3

<2> thicknessRatio 為外環半徑與環的厚度的比值

<3> useLevel 如果為true,則可以在LevelListDrawable中使用

接下來的 gradient 定義了漸變效果,規定了開始結束的顏色,還規定漸變方式為掃描漸變

最后一步,我們通過一個ProgressBar的屬性給他設置我們上面定義的樣式:

android:indeterminateDrawable="@drawable/loading_drawable"

經過上面的步驟我們就實現了一個簡單的漸變的ProgressBar,是不是超級簡單,希望可以幫助到需要的人。

源碼地址: https://github.com/codekongs/Android-Learning/tree/master/AndroidLoading

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 重庆市| 蒲江县| 剑河县| 余江县| 兰溪市| 远安县| 乐昌市| 康乐县| 万年县| 保亭| 奎屯市| 桐乡市| 安陆市| 当阳市| 沂源县| 莲花县| 怀安县| 霍林郭勒市| 商丘市| 舞阳县| 辰溪县| 遂溪县| 永清县| 绩溪县| 万荣县| 礼泉县| 中超| 金溪县| 宣威市| 鞍山市| 习水县| 山西省| 离岛区| 娱乐| 迁安市| 易门县| 衡水市| 龙游县| 鹤壁市| 客服| 荔波县|