Android編程自定義進(jìn)度條顏色的方法詳解
本文實例講述了Android編程自定義進(jìn)度條顏色的方法。分享給大家供大家參考,具體如下:
先看效果圖:
老是提些各種需求問題,我覺得系統(tǒng)默認(rèn)的顏色挺好的,但是Pk不過,誰叫我們不是需求人員呢,改吧!
這個沒法了只能看源碼了,還好下載了源碼, sources\base\core\res\res\ 下應(yīng)有盡有,修改進(jìn)度條顏色只能找progress ,因為是改變樣式,首先找styles.xml
找到xml后,進(jìn)去找到:
<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>
這是那個默認(rèn)轉(zhuǎn)圈的,但今天我們不修改這個,我們是要改變水平進(jìn)度條顏色,所以找到:
<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>
你看系統(tǒng)一步一步關(guān)聯(lián)的,擴(kuò)展性很性,低耦合,所以我們現(xiàn)在只要改變進(jìn)度條是怎么樣畫出來的就行了 ,但是負(fù)責(zé)畫進(jìn)度條的是 <item name="android:progressDrawable"> 所以我們可以找到"drawable下的 progress_horizontal 文件,改變他就可以改變進(jìn)度條顏色。
<?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>
看到?jīng)]有,這是系統(tǒng)的進(jìn)度條畫出的布局條件
android:startColor="#80ffd300" android:centerColor="#80ffb600" android:endColor="#ff747674"
我們只要改變這個色值就能改變他的顏色,主要改變的是<item android:id="@android:id/progress">下的色值就行了。
說了這么多,到底怎么做呢,很簡單:
在我們的項目下新建一個 style.xml 文件
創(chuàng)建一個style 標(biāo)簽,集成系統(tǒng)默認(rèn)樣式,然后自定義一個新的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" />
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android自定義雙向進(jìn)度條的實現(xiàn)代碼
- Android 自定義view實現(xiàn)進(jìn)度條加載效果實例代碼
- Android自定義View仿華為圓形加載進(jìn)度條
- Android進(jìn)度條控件progressbar使用方法詳解
- Android實現(xiàn)文件解壓帶進(jìn)度條功能
- Android實現(xiàn)蝸牛進(jìn)度條效果
- android 中win10 使用uwp控件實現(xiàn)進(jìn)度條Marquez效果
- Android自定義圓形進(jìn)度條
- Android自定義View實現(xiàn)環(huán)形進(jìn)度條的思路與實例
- android自定義進(jìn)度條漸變色View的實例代碼
- Android編程實現(xiàn)對話框形式進(jìn)度條功能示例
相關(guān)文章
詳解Android?Flutter如何使用相機(jī)實現(xiàn)拍攝照片
在app中使用相機(jī)肯定是再平常不過的一項事情了,相機(jī)肯定涉及到了底層原生代碼的調(diào)用,那么在flutter中如何快速簡單的使用上相機(jī)的功能呢?一起來看看吧2023-04-04Android使用AlertDialog實現(xiàn)彈出菜單的詳細(xì)過程
在Android經(jīng)常會用到AlertDialog,下面這篇文章主要給大家介紹了關(guān)于Android使用AlertDialog實現(xiàn)彈出菜單的詳細(xì)過程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04Android仿拉手網(wǎng)團(tuán)購App我的收藏界面實例代碼
這篇文章主要介紹了Android仿拉手團(tuán)購網(wǎng)App我的收藏界面實例代碼,需要的朋友可以參考下2017-05-05Android 使用SwipeRefreshLayout控件仿抖音做的視頻下拉刷新效果
這篇文章主要介紹了Android 使用SwipeRefreshLayout控件仿抖音做的視頻下拉刷新效果,需要的朋友可以參考下2018-05-05Android?NDK入門初識(組件結(jié)構(gòu)開發(fā)流程)
這篇文章主要為大家介紹了Android?NDK入門之初識組件結(jié)構(gòu)開發(fā)流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08