正如我在标题中说,当我使用setProgressDrawable,它填补了整个搜索栏:如果进度为34%,进度显示100%,但经验显示正确的percentatge 34%。 我不找出可以是问题...
done.setProgressDrawable(getResources().getDrawable(R.drawable.seekbar_progress));
done.setThumb(getResources().getDrawable(R.drawable.seekbar_thumb));
seekbar_progress.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="15dp" android:color="#52a8ec"/>
seekbar_thumb.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#ffffffff" android:endColor="#ff585858" android:angle="270"/>
<size android:height="17dp" android:width="5dp"/>
</shape>
任何想法?
先感谢您!
尽量把填充形状的夹子标签内,像这样
<clip>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="15dp" android:color="#52a8ec"/>
</clip>
我面临着同样的问题,下面的代码解决它。
无论你正在使用的代码来改变你的绘制只是做以下(其中“P”是你的搜索条):
int currentProgress = p.getProgress();
p.setProgress(0);
Rect bounds = p.getProgressDrawable().getBounds();
p.setProgressDrawable(getResources().getDrawable(R.drawable.progress_drawable_orange));
p.getProgressDrawable().setBounds(bounds);
p.setProgress(currentProgress);
不要忘记添加以下检查你的onProgressChanged
方法:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(!fromUser)
return;
// ... THE REST OF YOUR CODE
}
例
我在同样的情况结束了,你做和管理,通过实现与层列表XML文件的进展来解决问题。 见我的答案在这里 。
你可以调整progressTint
场在布局XML来改变进度颜色不影响搜索栏的整个背景。
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressTint="@color/seek_bar_progress"/>
还有thumbTint
和progressBackgroundTint
。