私はSeekBarをカスタマイズしました - 私は背景としてカスタムイメージを使用し、親指としてカスタムイメージを使用します(How to create custom layout for seekbar in android? & How to customize the look of a SeekBar in Android?)。SeekBarのカスタマイズ - カスタム "サム"イメージを適切に配置する方法は?
アイデアは、このイメージでのもののように見えるのSeekBarを作ることです。
私はprogress
値が0に設定されている場合、親指の画像は、丸みを帯びたバーに完璧にフィットさせたいですまたは100(100のうち)。正しく親指を位置決めするために
(すなわち、バーの端部と重ならない)私は、親指幅(Android: Seekbar doesn't scroll all the way to end)の丁度半分の幅にpaddingLeft
& paddingRight
値を設定しています。
.../RES /レイアウト/ main.xml:
<SeekBar android:id="@+id/frequency_slider"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100" android:progress="0"
android:progressDrawable="@drawable/seekbar_no_visible_progress"
android:thumb="@drawable/seekbar_thumb" <!-- this is an image -->
android:background="@drawable/hos_bar" <!-- this is an image -->
android:paddingLeft="24dp"
android:paddingRight="24dp">
</SeekBar>
これは、Android 2.1で動作します。アンドロイド2.2で
これは、異なる効果生成:
さらに調査した後(と私は親指の画像の位置ということを発見した、完全にデフォルトSeekBar
でこれをしようとし2.1から2.2に変更されました。paddingLeft
& paddingRight
の変更のハックは問題ではありません。
- 2.1では、親指はバーの端を中心に、親指の半分はバーに、半分はバーから外れています。
- 2.2では、親指がバーの中に重ならずに配置されています。したがって、パディング値が結果に影響を与える奇妙な方法です。これは私が達成しようとしていたものですが、カスタムサムを使用すると、このエフェクトは同じように機能しなくなります。
私は事のこのタイプを処理するカスタムJavaクラスを作成する必要があると思います。この質問(Possible to do rounded corners in custom Progressbar progressDrawable?)では、通常の進行状況バーを作成するために、開発者はClipDrawable
を使用します。
どのようなタイプのドロアブルオブジェクトを使用しますか?そして、私の親指を正確に配置するにはどうすればいいですか?
ありがとうございました。私は私の質問を更新しました。私が望んでいない効果はまだ残っています(標準のSeekBarでも)。進捗値が0または最大に設定されている場合、バーの各丸い端に親指イメージをうまく収めるようにしたいと思います。 –