单击seekBar时,seekBar thumb会拉伸

时间:2013-03-22 14:10:59

标签: android seekbar

我遇到了一个奇怪的问题。在我的应用中,我有一个自定义SeekBar,拇指有2个状态。当我点击seekBar时,它的拇指变形并且在几秒后恢复到正常状态。相应的MediaPlayer对象会立即按预期做出反应,问题只是一个视觉的。快照来说明这一点:

正常行为:

enter image description here

点击seekBar时:

enter image description here

我不知道这有什么问题。

搜索栏:

     <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;

}

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

好吧,我刚才发现这个问题与"thumb_pressed" drawable有某种关系,它比用于正常状态的drawable大约25%。我无法解释这一点,但将"thumb_pressed" drawable修改为与"thumb" drawable具有相同的大小可以解决问题。