我正在使用自定义拇指创建一个搜索栏。所以我的拇指分层可绘制。所以我想在拖动拇指的同时调整我的拇指图像。
我的意思是当我拖动拇指时......拇指大小会增加,搜索栏位置也不会改变。
请帮助我,并提前致谢。
答案 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>