Анимация большого пальца Seekbar при перетаскивании
Я создаю панель поиска с пользовательским большим пальцем. Так что мой большой палец это слоисто рисовал. Поэтому я хочу изменить размер изображения большого пальца, перетаскивая большой палец.
Я имею в виду, когда я буду тянуть мой большой палец... размер большого пальца увеличится, и положение панели поиска не должно быть изменено.
Пожалуйста, помогите мне и спасибо заранее.
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
;`это то, что вычисляет новый размер большого пальца при скольжении, поэтому вам нужно будет немного поиграть с математикой, чтобы получить именно тот результат, который вам нужен
Используйте селектор для бегунка большого пальца, как этот
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>