我有一个搜索栏,我在代码中设置拇指可绘制。当活动开始时我可以看到拇指改变了drawable但是如果我从搜索栏活动开始一个新的活动然后回来,搜索栏的拇指就会变得不可见(只有当我再次设置它的可绘制时)。只有当我从其他活动回到搜索栏活动时才会发生这种情况。
我需要在onRestart()中更改拇指的drawable,因为其他活动可能会改变拇指的颜色或形状,我需要刷新它的drawable。
我在搜索栏上尝试了invalidate()但没有用...
修改 我尝试制作3个静态Drawable对象并在onCreate()中加载图像,我注意到在回到SeekBar活动后,如果我将拇指绘制设置为已经设置的拇指,则拇指可见但是如果我更改了drawable,拇指就会变得不可见。
编辑2:
在这种情况下,我将加载的drawable设置为拇指:
String gender = getGender();
if (gender.equals(Profile.GENDER_1)) {
mSeekBar.setThumb(mDrawable1);
} else if (gender.equals(Profile.GENDER_2)) {
mSeekBar.setThumb(mDrawable2);
} else {
mSeekBar.setThumb(mDrawable3);
}
这就是我试图从资源中获取可绘制的
String gender = getGender();
if (gender.equals(Profile.GENDER_1)) {
mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_1);
} else if (gender.equals(Profile.GENDER_2)) {
mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_2);
} else {
mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_3);
}
mSeekBar.setThumb(mDrawable);
在这两种情况下,拇指都变得不可见了..
可能是什么问题?有人知道答案吗? 谢谢!
答案 0 :(得分:13)
在使用之前,您没有设置drawable的界限。
尝试在setThumb()调用之前添加此行:
mDrawable.setBounds(0,0,
mDrawable.getIntrinsicWidth(),
mDrawable.getIntrinsicHeight()
);