実装がかなり簡単に聞こえる何かを試しています。ただし、期待どおりの応答はありません。を使用し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:このような素晴らしい世界。一番上の黒いマークで遊んでみたところ、最終的には均等に分布していませんでしたが、うまくいきました。