2

奇妙な問題が発生しています。私のアプリでは、SeekBar2 つの状態を持つ親指を持つカスタムがあります。をクリックするseekBarと、親指がゆがみ、数秒後に通常の状態に戻ります。対応するMediaPlayerオブジェクトは期待どおりにすぐに反応します。問題は単なる視覚的な問題です。これを説明するスナップショット:

通常の動作:

ここに画像の説明を入力

seekBarをクリックすると:

ここに画像の説明を入力

私はそれについて何が悪いのか分かりません。

シークバー:

     <SeekBar
        android:id="@+id/seekBarMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_gravity="bottom"
        android:layout_marginBottom="5dp"
        android:indeterminate="false"
        android:maxHeight="3dp"
        android:maxWidth="450dp"
        android:minHeight="3dp"
        android:paddingLeft="9dp"
        android:paddingRight="9dp"
        android:progressDrawable="@drawable/pb"
        android:thumb="@drawable/thumb_state" />

Thumb に使用される Drawable:

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

<item android:drawable="@drawable/thumb_pressed" android:state_enabled="true" android:state_pressed="true"/>
<item android:drawable="@drawable/thumb" android:state_pressed="false"/>

      </selector>

OnTouchListener:

        @Override
public boolean onTouch(View v, MotionEvent event) {

    if (v.getId() == R.id.seekBarMain) {

        if (mp.isPlaying()) {

            int playPositionInMillisecconds = (mediaFileLengthInMilliseconds / 100)
                    * sb.getProgress();
            mp.seekTo(playPositionInMillisecconds);
        } else {
            int playPositionInMillisecconds = (mediaFileLengthInMilliseconds / 100)
                    * sb.getProgress();
            mp.start();
            mp.seekTo(playPositionInMillisecconds);
            btnPlay.setBackgroundResource(R.drawable.button_pause);
            primarySeekBarProgressUpdater();

        }
    }

    return false;

}

なぜそれが起こるのか?

4

1 に答える 1

2

わかりました。この問題は"thumb_pressed"、通常の状態で使用されるドローアブルよりも約 25% 大きいドローアブルに何らかの形で関連していることがわかりました。私はそれを本当に説明することはできませんが、"thumb_pressed"ドローアブルと同じサイズになるようにドローアブルを変更すると、"thumb"問題が修正されました。

于 2013-03-22T16:10:50.037 に答える