Android GridView ускоряет прокрутку - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть GridView, где каждая ячейка содержит число с определенным цветом текста и определенным фоновым изображением (см. Изображение).

Метод getView (), который его генерирует, приведен ниже. Можно ли улучшить скорость прокрутки?

enter image description here

public View getView(int position, View convertView, ViewGroup parent) {
    int row = getRow(position);
    int col = getCol(position);

       TextView view;
       if (convertView == null) {
           view = new TextView(context, null);
           view.setGravity(Gravity.CENTER);

           if (answer[row][col] == ROW_MARKER) {
               view.setTextColor(Color.YELLOW);
               view.setBackgroundResource(R.drawable.outline_whiteonblue);
           }
           else {
               view.setTextColor(Color.WHITE);
                       view.setBackgroundResource(R.drawable.outline_whiteonblack);
            }
        }               
        else 
           view = (TextView) convertView;   

        if (answer[row][col] == ROW_MARKER) {
               view.setTextColor(Color.YELLOW);
               view.setBackgroundResource(R.drawable.outline_whiteonblue);
               view.setText(Integer.toString(getRow(position) + 1));
        }
        else {
            view.setTextColor(Color.WHITE);
            view.setBackgroundResource(R.drawable.outline_whiteonblack);
            view.setText(Character.toString(answer[row][col]));
        }
        return view;
 }

1 Ответ

2 голосов
/ 03 февраля 2012

РЕДАКТИРОВАТЬ: Изменение моего кода здесь.Я думаю, что ваш код выше немного избыточен, но в остальном все в порядке.

public View getView(int position, View convertView, ViewGroup parent) {
        int row = getRow(position);
        int col = getCol(position);

TextView view;
if (convertView == null) {
    view=new TextView(context,null);
    view.setGravity(Gravity.CENTER);
} else {
   view=(TextView)convertView;
} 


if (answer[row][col] == ROW_MARKER) {
            view.setTextColor(Color.YELLOW);
            view.setBackgroundResource(R.drawable.outline_whiteonblue);
            view.setText(Integer.toString(getRow(position) + 1));
 } else {
            view.setTextColor(Color.WHITE);
            view.setBackgroundResource(R.drawable.outline_whiteonblack);
            view.setText(Character.toString(answer[row][col]));
 }

return view;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...