我遇到了问题。我需要在图库中突出显示所选项目。我试过通过这种方法改变所选视图的外观:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
该视图的第二个参数是当前选定的视图,我在这种情况下尝试增加文本的大小。但是这不起作用,即使我在所选项目或整个图库中调用invalidate也不行。
这是我用来更改textview文字大小的代码
TextView textview = (TextView)view;
textview.setTextSize(50, TypedValue.COMPLEX_UNIT_SP);
textview.invalidate();
你知道怎么做吗?感谢
答案 0 :(得分:8)
您的实现有效,但是一旦项目取消选中,它就不会将文本大小恢复为正常 - 文本的大小会更大。
这应该解决它:
private View lastview;
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (lastview != null) lastview.setBackgroundColor(0xFFFFFFFF);
lastview = arg1;
arg1.setBackgroundColor(0xFFFF0000);
}
您可以设置文字大小而不是颜色,也可以根据自己的风格做任何想法。
答案 1 :(得分:0)
试试StateListDrawable - 看起来很适合你的情况。
更新:你已经颠倒了setTextSize中的参数。它应该是:
textview.setTextSize(TypedValue.COMPLEX_UNIT_SP, 50);