2014-02-21 118 views
0

我試圖創建一個使用帶有文本的圖像(實際上圖像是一個文本標誌保存爲PNG)的progressBar。無法居中progressBar

我已經創建了一個正常的progressBar使用2個圖像(一個灰色的背景和一個藍色的進度條),它工作得很好。

<ProgressBar 
    android:id="@+id/pbLoading" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="25dp" 
    android:layout_marginRight="25dp" 
    android:layout_marginTop="130dp" 
    android:background="@drawable/grayloadingbar" 
    android:progress="@integer/loadingProgress" 
    android:progressDrawable="@drawable/custom_progress" 
    android:radius="0dp" 
    android:visibility="visible" /> 

這是custom_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:id="@android:id/progress"> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/blueloadingbar" 
      android:layout_height="fill_parent" /> 
     <corners android:radius="0dp" /> 
    </item> 
</layer-list> 

的問題是,與其他圖像(上面提到的文字標識圖片)來取代這2個圖像,這個不好看了。

加載工作得很好,我可以看到進度,但進度條圖像接縫具有固定的大小,而背景src是可變的,這取決於顯示器,我可以自己調整它的大小,這是我不能做的進度條。

這裏是XML:

<ProgressBar 
    android:id="@+id/pbLoading" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="68dp" 
    android:layout_gravity="center_vertical" 
    android:layout_marginLeft="25dp" 
    android:layout_marginRight="25dp" 
    android:layout_marginTop="130dp" 
    android:background="@drawable/loading_bw" 
    android:minHeight="20dip" 
    android:mirrorForRtl="false" 
    android:progress="@integer/fullProgress" 
    android:progressDrawable="@drawable/custom_progress" 
    android:radius="0dp" 
    android:visibility="visible" /> 

而且custom_progress

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:id="@android:id/progress"> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/loading_color" 
      android:layout_width="fill_parent" 
      android:layout_height="90dp" /> 
     <corners android:radius="0dp" /> 
    </item> 
</layer-list> 

我不能告訴你的圖片,但整體進度條看起來有 寬度爲100%&高度和25dp保證金頂部&左側,如果您將背景圖像的左上角作爲參考點。

任何想法?

到目前爲止,我一直在爲此深入挖掘,並且沒有運氣。

+0

所以這個總結就是你需要居中進度條嗎? – cafebabe1991

+0

類別。這個想法是將機器人圖像放在另一個之上,以便藍色圖像逐漸顯示出來,使得用戶認爲圖像上的灰色文本逐漸變爲藍色。 – daydr3am3r

回答

1

您可以將主題添加到您的進度條,如 圍繞您的進度條製作佈局,例如:relativeLayout將您的進度條放置在其中,然後將此標籤應用於佈局。 因此,現在具有進度條的佈局將被調整爲對話框。

android:theme="@style/Theme.Dialog" 

第二方法

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

應用您的進度條的上述寬度/ 2和高度/ 2作爲寬度和高度。

方法3

如果你想在像素的顯示尺寸可以使用的getSize:

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

應用你的進步上述寬度/ 2和高度/ 2的寬度和高度但是因爲這些尺寸將以像素爲單位。因此可以相應地調整它們。

注:

方法3件作品與ApiLevel:13和以上版本。