Как выделить элемент, выбранный в настоящий момент в галерее? - PullRequest
2 голосов
/ 12 апреля 2011

Я пришел с проблемой. Мне нужно выделить выбранный элемент в галерее. Я попытался изменить внешний вид выбранного представления с помощью этого метода:

@Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)

Второй параметр этого вида - это текущий выбранный вид, и я пытаюсь в этом случае увеличить размер текста. Однако это не сработает, даже если я вызову инвалидность в выбранном элементе или во всей галерее.

Это код, который я использую для изменения размера текста textview

TextView textview = (TextView)view;             
textview.setTextSize(50, TypedValue.COMPLEX_UNIT_SP);
textview.invalidate();

Ты знаешь, как это сделать? Спасибо

Ответы [ 2 ]

8 голосов
/ 12 августа 2011

Ваша реализация работает, но она не возвращает размер текста к нормальному, когда элемент становится невыбранным - текст остается большего размера.

Это должно исправить это:

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

}

Вы можете установить размер текста вместо цвета или делать все, что вы хотите в соответствии с его стилем.

0 голосов
/ 12 апреля 2011

Попробуйте StateListDrawable - выглядит подходящим для вашей ситуации.

ОБНОВЛЕНИЕ: вы изменили параметры в setTextSize.Должно быть:

textview.setTextSize(TypedValue.COMPLEX_UNIT_SP, 50);
...