拖动时Seekbar的拇指动画

时间:2016-01-19 06:08:08

标签: android seekbar

我正在使用自定义拇指创建一个搜索栏。所以我的拇指分层可绘制。所以我想在拖动拇指的同时调整我的拇指图像。

我的意思是当我拖动拇指时......拇指大小会增加,搜索栏位置也不会改变。

请帮助我,并提前致谢。

2 个答案:

答案 0 :(得分:2)

滑动时更改搜索条拇指大小需要一些代码

android:thumb="@drawable/round"

<强>代码

private SeekBar seekBar;

OnCreate添加

seekBar = (SeekBar) findViewById(R.id.mySeekBarID);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            int progress = 0;

            @Override

            public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {

                progress = progresValue;

                Resources res = getResources();
                Drawable thumb = res.getDrawable(R.drawable.round);
                int h = progress / 10;
                int w = h;
                Bitmap bmpOrg = ((BitmapDrawable) thumb).getBitmap();
                Bitmap bmpScaled = Bitmap.createScaledBitmap(bmpOrg, w, h, true);
                Drawable newThumb = new BitmapDrawable(res, bmpScaled);
                newThumb.setBounds(0, 0, newThumb.getIntrinsicWidth(), newThumb.getIntrinsicHeight());
                seekBar.setThumb(newThumb);

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

经过测试并按预期工作。也就是说,当你移动拇指时,它向左变小,向右变大

此行int h = progress / 10;`是您在滑动时计算新拇指大小的原因,因此您需要使用一些数学来获得所需的确切结果

答案 1 :(得分:1)

像这样使用了seekbar thumb选择器

<强> thumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/thumb_small" android:state_enabled="false"/>
    <item android:drawable="@drawable/thumb_big" android:state_pressed="true"/>
    <item android:drawable="@drawable/thumb_small" android:state_selected="true"/>
    <item android:drawable="@drawable/thumb_small"/>
</selector>

并在您的搜索栏中引用此内容,例如您的布局file.xml

        <SeekBar
            android:id="@+id/seekBarRadius"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:indeterminate="false"
            android:max="100"
            android:maxHeight="10dp"
            android:minHeight="10dp"
            android:progress="100"
            android:thumb="@drawable/thumb" />

<强> thumb_big.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <corners android:radius="20dp" />
        <solid android:color="#FF049BFF" />
        <size
            android:width="40dp"
            android:height="40dp" />
    </shape>
</item>

<强> thumb_small.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <corners android:radius="15dp" />
        <solid android:color="#FF049BFF" />
        <size
            android:width="30dp"
            android:height="30dp" />
    </shape>
</item>