4

私の問題は 2 つあります。現時点ではカスタマイズされていない seekBar がありますが、将来的にはカスタマイズする必要があるのではないかと心配しています。私の問題は親指の画像を囲んでいます:

  1. これに触れたときにアクションを実行したいので、シークバーの親指をクリック可能にする必要があります。これは、onTouchlistener を使用して達成することができました。問題は、親指をクリックしたときに視覚的なフィードバック画像が欲しいことです。これは、ドローアブルセレクターで達成しようとしました役に立たない。

  2. 2 番目の問題は、方向の変更時にシークバーの親指をアニメーション化することです。これはどうすればいいのかわかりません...

どんな助けでも大歓迎です!

編集: 私が達成しようとしているアニメーションは回転であるため、画像は常に「直立」します

クリックフィードバックに使用しようとしたコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/camera_button_feedback" android:state_pressed="true"/>
<item android:drawable="@drawable/camera_button_feedback" android:state_selected="true"/>
<item android:drawable="@drawable/camera_button_icon"/>

</selector>
4

3 に答える 3

2

長い間検討した後、私が行ったのは、親指で進行するビューを作成し、タッチイベントを取得するためにシークバーの親指を非表示にし、必要に応じて基になるビューをアニメーション化することでした。

于 2012-08-21T14:49:49.547 に答える
0

問題の解決策 1.) : 私はこれを個人的にテストしたので、それが機能し、視覚的なフィードバックが得られることを保証できます.

1.) プロジェクトに「xml」というフォルダーを作成し、thumb_drawable.xml という XML ファイルをそこに追加します。このファイルで、次を定義します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item 
android:state_pressed="true"
android:drawable="@drawable/seek_thumb_pressed">
</item>
<item 
android:drawable="@drawable/seek_thumb_normal">  
</item>
</selector>

「seek_thumb_normal」はデフォルトの Android シークバー サムで、その画像をダウンロードするためのリンクはhttp://www.tutomobile.fr/wp-content/uploads/2011/02/seek_thumb_normal.pngです。また、「seek_thumb_pressed」は、デフォルトの Android シークバー サムの修正版で、色が異なります。これで、その画像を描画可能なフォルダーに配置し、ここでその名前を参照することで、これを必要な他の画像に簡単に置き換えることができます。

2.) レイアウト ファイルで SeekBar を定義するために使用したコードは次のとおりです。

<SeekBar android:id="@+id/seekbar"
         android:max="100"
         android:layout_width="fill_parent"
         android:layout_height="30dp" 
         android:minWidth="30dp"
         android:minHeight="30dp" 
         android:thumb="@xml/thumb_drawable"/> 

問題 2: ここで、「私が達成しようとしているアニメーションは回転であるため、画像は常に「直立」します。Android はデフォルトで、携帯電話の向きを縦向きから横向きに変更すると、画像はデフォルトで直立したままになります.Ice-cream Sandwich でこれを自分でテストしたところ、向きを変更するとシークバーのつまみが自動的に回転しました. 「誤解しているか、何か他のことを考えていた場合、向きの変換を処理するときに何もアニメーション化する必要はありません。何か他のことを考えていた場合はお知らせください。それを解決するお手伝いをします.

于 2012-08-16T17:57:09.563 に答える
-4

次のスニペットを確認してください。多少役立つ場合があります...

         seekBar = (SeekBar)findViewById(R.id.seekBar);
    seekBar.setOnTouchListener(this);
          private void updateSeekProgress() {
    if (mediaPlayer.isPlaying()) {
        seekBar.setProgress((int)(((float)mediaPlayer.getCurrentPosition() / lengthOfAudio) * 100));
        handler.postDelayed(r, 1000);
    }
}   
于 2012-08-21T14:05:47.937 に答える