有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将progressDrawable置于progressBar的后台

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

我已经用两张图片创建了一个普通的进度条(一张灰色的作为背景,一张蓝色的作为进度条),效果很好

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

这是海关的进展。xml

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

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

加载效果很好,我可以看到进度,但进度条图像接缝的大小是固定的,而背景src是可变的,这取决于显示,我可以自己调整大小,这是我无法为进度条做的

以下是XML:

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

以及海关的进展

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

我不能给你看这些图片,但整个进度条看起来像有 100%宽度和宽度;高度和25dp余量顶部和顶部;左,如果将背景图像的左上角作为参考点

有什么想法吗

我已经为此挖掘了很多,但到目前为止运气不佳


共 (1) 个答案

  1. # 1 楼答案

    你可以像这样在进度条中添加主题 在你的进度条周围做一个布局,例如:一个相对物你把你的进度条放在里面,然后把这个标签应用到布局上。 因此,现在具有progressbar的布局将作为对话框进行调整

    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作为进度条的宽度和高度。但由于这些尺寸将以像素为单位。因此,相应地调整它们

    注意:

    Method 3 works with ApiLevel :13 and above only.