如何突出显示当前在图库中选择的项目?

时间:2011-04-12 09:17:14

标签: android gallery

我遇到了问题。我需要在图库中突出显示所选项目。我试过通过这种方法改变所选视图的外观:

@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();

你知道怎么做吗?感谢

2 个答案:

答案 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);