2012-01-10 76 views
1

我有一个搜索栏,我将代码中的拇指设置为可绘制。当活动开始时,我可以看到拇指已更改的drawable,但如果我从seekbar活动开始一个新活动并返回,则seekbar的拇指将变得不可见(仅当我将其设置为可绘制时)。只有当我从其他活动回到搜索栏活动时,才会发生这种情况。安卓seekbar - 设置其可绘制后,拇指不可见

我需要更改onRestart()中的thumb的drawable,因为其他activity可能会改变拇指的颜色或形状,我需要刷新它的drawable。

我试着搜索条,但没有使用无效()...

编辑: 我试图让3分静态拖拉的对象和加载的onCreate()的图像和我注意到,未来的后回到SeekBar活动上,如果我将可绘制的拇指设置为已设置的拇指,则拇指可见,但如果我更改可绘制,则拇指变为不可见。

编辑2:

在这种情况下,我设置加载可绘以大拇指:

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); 
    } 

这是,如果我尝试从资源获取的可绘制

字符串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

你能张贴您使用更改绘制的代码? – Jave 2012-01-13 08:48:46

+0

更新了问题,谢谢! – Cata 2012-01-13 10:09:27

+0

嗯,你可以尝试打印mDrawablex的值后,将其设置为seekbar,以确保它是一个可绘制的,而不是空。 (Log.i(“drawable”,“drawable?”+ mDrawable); – Jave 2012-01-13 10:14:52

回答

12

在使用它之前,您没有设置drawable的边界。

尝试setThumb前加入这一行()调用:

mDrawable.setBounds(0,0, 
    mDrawable.getIntrinsicWidth(), 
    mDrawable.getIntrinsicHeight() 
); 
+0

非常感谢,它现在的作品,感谢你! – Cata 2012-01-17 08:27:31

+0

,当然谷歌改变了drawkit之间的kitkat之间的默认行为和棉花糖。 – ShellDude 2018-01-19 02:53:11