2014-03-02 52 views
0

我想創建一個沒有背景的ProgressBar。我已經能夠將背景變成透明的,但在背景通常顯示的空間中仍然有填充。將填充設置爲0不會更改此設置。是否有可能在不創建自定義drawable的情況下實現我想要的功能?在沒有背景的Android中創建ProgressBar

+1

您可能想要添加屏幕截圖以及您嘗試過的代碼。 –

回答

0

問題是用於ProgressBar的默認9Patch圖像的周圍有空間。例如,以下是用於主要進度,二級進度和背景的標準holo_dark圖像。正如你所看到的,它們每個圖像都有透明空間區域。

enter image description here progress_primary_holo_dark.9.png
enter image description here progress_secondary_holo_dark.9.png
enter image description here progress_bg_holo_dark.9.png

要實現你是什麼之後,你需要提供你自己的圖像9Patch這不有這個額外的空間。在您的代碼中使用setProgressDrawable()或者在xml中使用android:progressDrawable,爲您的ProgressBar設置Drawable。

您可以將所有必需的圖像合併到Android OS中的單個LayerList Drawable中。例如:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:id="@android:id/background" 
      android:drawable="@drawable/my_progress_bg" /> 

    <item android:id="@android:id/secondaryProgress"> 
     <scale android:scaleWidth="100%" 
       android:drawable="@drawable/my_progress_secondary" /> 
    </item> 

    <item android:id="@android:id/progress"> 
     <scale android:scaleWidth="100%" 
       android:drawable="@drawable/my_progress_primary" /> 
    </item> 

</layer-list> 

你可以找到所有在SDK /平臺/ Android的XX /數據/ RES /你正在開發的計算機上的文件夾中使用Android的默認的圖形資源。