0

実装がかなり簡単に聞こえる何かを試しています。ただし、期待どおりの応答はありません。を使用しProgressbarて 5 つの状態バーを描画しています。ユーザーは状態をクリックして、アプリケーションの動作を変更できます。私のプログレスバーはこのドローアブルを使用しています (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パッチです)、「その下のピクセルを拡大する優れた黒いマーク」(どのように呼ばれているかわかりません。誰か?)がそれらをランダムに拡大することです。 (つまり、一部のパーツは他のパーツの 2 倍に拡大するという意味です)。

私が使用しなかったトリックがあるのか​​ 、それともすべてのブロックを均等に使用するのではなく、不明瞭に使用するのは Android だけなのかはわかりません。それに関するアイデアはありますか?

編集:

@sandkasten が提案したように、draw9patch アプリケーションを使用しました。ただし、ご覧のとおり、完全に分散されているように見えますが、Nexus 7 では機能しません。

ここに画像の説明を入力

編集2:

黒い背景のステータス バー。ご覧のとおり、最初のアイコンと 2 番目のアイコンの間に大きな距離があり、その間にセレクターがあります。

ここに画像の説明を入力

編集 3:このような素晴らしい世界。一番上の黒いマークで遊んでみたところ、最終的には均等に分布していませんでしたが、うまくいきました。

4

1 に答える 1

0

私があなたを正しく理解していれば、これは解決策になるはずです。draw9patch.bat を見てください。画像のプレビューと、Android によるストレッチ方法が表示されます。android sdk で提供されます。

新しいバージョン

于 2013-05-13T09:35:35.630 に答える