0

我正在尝试一些听起来很容易实现的东西。但是,它没有按预期响应。我正在使用 aProgressbar来绘制一个 5 状态栏,用户可以在其中单击任何状态来更改应用程序的行为。我的进度条使用这个drawable(只要注意background元素)。

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

    <item android:id="@android:id/background">
        <nine-patch
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:src="@drawable/statusbar_thin" />
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <gradient
                    android:endColor="#ffeeeeee"
                    android:startColor="#ffeeeeee" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <nine-patch
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:src="@drawable/statusbar_thin" />
    </item>

</layer-list>

这是@drawable/statusbar_thin.

在此处输入图像描述

您可能会看到它们看起来不像垂直居中的点,但这没关系。问题是,当图像被拉伸时(它是一个 9 补丁,如您所料),“扩展其下方像素的高级黑色标记”(我不知道它是如何调用的。有人吗?)随机扩展它们(我的意思是某些部分比其他部分扩展两倍)。

我不确定是否有我没有使用的技巧,或者只是 Android 模糊地使用任何块,而不是均匀地使用所有块。有什么想法吗?

编辑:

正如@sandkasten 建议的那样,我使用了 draw9patch 应用程序。但是,如您所见,它看起来完美分布,但在 Nexus 7 上,它不起作用。

在此处输入图像描述

编辑2:

黑色背景中的状态栏。如您所见,第一个和第二个图标之间有很大的距离,而选择器介于两者之间。

在此处输入图像描述

编辑3:如此神奇的世界。我开始使用最上面的黑色标记,尽管它们最终分布不均​​,但它奏效了。

4

1 回答 1

0

如果我理解正确,这应该是解决方案。看一下 draw9patch.bat,它显示了图像的预览以及 android 如何拉伸它。它与 android sdk 一起提供。

新版本

于 2013-05-13T09:35:35.630 回答