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

首頁 > 系統 > Android > 正文

Android編程自定義進度條顏色的方法詳解

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

本文實例講述了Android編程自定義進度條顏色的方法。分享給大家供大家參考,具體如下:

先看效果圖:

Android,自定義,進度條,顏色

老是提些各種需求問題,我覺得系統默認的顏色挺好的,但是Pk不過,誰叫我們不是需求人員呢,改吧!

這個沒法了只能看源碼了,還好下載了源碼, sources/base/core/res/res/ 下應有盡有,修改進度條顏色只能找progress ,因為是改變樣式,首先找styles.xml

找到xml后,進去找到:

<style name="Widget.ProgressBar"> <item name="android:indeterminateOnly">true</item> <itemname="android:indeterminateDrawable">@android:drawable/progress_medium_white</item> <item name="android:indeterminateBehavior">repeat</item> <item name="android:indeterminateDuration">3500</item> <item name="android:minWidth">48dip</item> <item name="android:maxWidth">48dip</item> <item name="android:minHeight">48dip</item> <item name="android:maxHeight">48dip</item></style>

這是那個默認轉圈的,但今天我們不修改這個,我們是要改變水平進度條顏色,所以找到:

<style name="Widget.ProgressBar.Horizontal"> <item name="android:indeterminateOnly">false</item> <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> <itemname="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> <item name="android:minHeight">20dip</item> <item name="android:maxHeight">20dip</item></style>

你看系統一步一步關聯的,擴展性很性,低耦合,所以我們現在只要改變進度條是怎么樣畫出來的就行了 ,但是負責畫進度條的是 <item name="android:progressDrawable">  所以我們可以找到"drawable下的 progress_horizontal 文件,改變他就可以改變進度條顏色。

<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2008 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <shape>  <corners android:radius="5dip" />  <gradient  android:angle="270"  android:centerColor="#ff5a5d5a"  android:centerY="0.75"  android:endColor="#ff747674"  android:startColor="#ff9d9e9d" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip>  <shape>  <corners android:radius="5dip" />  <gradient   android:angle="270"   android:centerColor="#80ffb600"   android:centerY="0.75"   android:endColor="#a0ffcb00"   android:startColor="#80ffd300" />  </shape> </clip> </item> <item android:id="@android:id/progress"> <clip>  <shape>  <corners android:radius="5dip" />  <gradient   android:angle="270"   android:centerColor="#ffffb600"   android:centerY="0.75"   android:endColor="#ffffcb00"   android:startColor="#ffffd300" />  </shape> </clip> </item></layer-list>

看到沒有,這是系統的進度條畫出的布局條件

android:startColor="#80ffd300"android:centerColor="#80ffb600"android:endColor="#ff747674"

我們只要改變這個色值就能改變他的顏色,主要改變的是<item android:id="@android:id/progress">下的色值就行了。

說了這么多,到底怎么做呢,很簡單:

在我們的項目下新建一個 style.xml 文件

創建一個style 標簽,集成系統默認樣式,然后自定義一個新的progressDrawable 文件,隨后面在layout 中的progress 中引用這個文件就行。

<style name="ProgressBar_Mini" parent="@android:style/Widget.ProgressBar.Horizontal"> <item name="android:maxHeight">50dip</item> <item name="android:minHeight">8dip</item> <item name="android:indeterminateOnly">false</item> <itemname="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> <item name="android:progressDrawable">@drawable/progressbar_mini</item></style>

下面是我的 progressbar_mini 文件,改變了下android:endColor="#F5F5F5" android:startColor="#BEBEBE" 的色值

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <shape>  <corners android:radius="5dip" />  <gradient  android:angle="270"  android:centerY="0.75"  android:endColor="#F5F5F5"  android:startColor="#BEBEBE" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip>  <shape>  <corners android:radius="0dip" />  <gradient   android:angle="270"   android:centerY="0.75"   android:endColor="#165CBC"   android:startColor="#85B0E9" />  </shape> </clip> </item> <item android:id="@android:id/progress"> <clip>  <shape>  <corners android:radius="5dip" />  <gradient   android:angle="270"   android:centerY="0.75"   android:endColor="#165CBC"   android:startColor="#85B0E9" />  </shape> </clip> </item></layer-list>

最后引用其就可以了。

<ProgressBar android:id="@+id/progress" style="@style/ProgressBar_Mini" android:layout_width="fill_parent" android:layout_height="wrap_content" android:progress="50" />

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台东县| 康马县| 潍坊市| 乌兰浩特市| 于田县| 望都县| 石泉县| 塔城市| 汉寿县| 金堂县| 常德市| 湟源县| 大埔县| 吴江市| 武山县| 松阳县| 德令哈市| 汤阴县| 仙游县| 达日县| 通榆县| 阳西县| 尉犁县| 绍兴市| 济南市| 澄迈县| 阿坝县| 渭源县| 天祝| 大丰市| 望奎县| 肇东市| 呼伦贝尔市| 成安县| 库尔勒市| 噶尔县| 义乌市| 英德市| 泾阳县| 辽源市| 嘉鱼县|