溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中如何自定義進度條顏色

發(fā)布時間:2022-04-15 16:06:17 來源:億速云 閱讀:320 作者:iii 欄目:編程語言

這篇文章主要介紹“Android中如何自定義進度條顏色”,在日常操作中,相信很多人在Android中如何自定義進度條顏色問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android中如何自定義進度條顏色”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

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>

這是那個默認轉(zhuǎ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)的,擴展性很性,低耦合,所以我們現(xiàn)在只要改變進度條是怎么樣畫出來的就行了 ,但是負責(zé)畫進度條的是 <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>

看到?jīng)]有,這是系統(tǒng)的進度條畫出的布局條件

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

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

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

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

創(chuàng)建一個style 標簽,集成系統(tǒng)默認樣式,然后自定義一個新的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"
 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:progress="50" />

到此,關(guān)于“Android中如何自定義進度條顏色”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI