无法将progressDrawable集中在progressBar中的后台

时间:2014-02-21 07:51:23

标签: java android xml progress-bar graphical-logo

我正在尝试使用带有文本的图像创建progressBar(实际上图像是保存为png的文本徽标)。

我已经使用2张图片创建了一个普通的progressBar(灰色的图像作为背景,蓝色图像作为进度条),它工作得很好。

<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>

问题是用其他图像(上面提到的文字标识图像)替换这两个图像,这看起来不再好看了。

加载工作正常,我可以看到进度,但进度条图像接缝有固定的大小,而背景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%宽度&amp;高度和25dp保证金top&amp;左,如果您将背景图像的左上角作为参考点。

有什么想法吗?

到目前为止,我一直在为此付出很多努力而且没有运气。

1 个答案:

答案 0 :(得分: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及以上。