2012-02-03 103 views
0

我有一个GridView,其中每个单元格包含具有特定文本颜色和特定背景图像的数字(请参见图像)。Android 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; 
} 

回答

2

编辑:这里更改我的代码。我认为你上面的代码只是有点多余,但否则确定。

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; 
} 
+0

缓存的图像会加快速度(如果是这样,那将如何工作)? – Allen 2012-02-03 05:05:04

+0

不知道这是否是您的问题,除非这些可绘制的东西很大或什么东西。你能描述一下你看到的滚动问题吗?你有Scrollview中的Gridview吗?什么是缓慢,它是在一个设备或模拟器等。 – Fraggle 2012-02-03 05:16:19

+0

图像是非常小的,但可以有很多,最多2000个人单元格。当网格填充大量单元格时(不,没有滚动视图),滚动只会变得很糟糕,并且我正在设备上进行测试。在处理这么多观点时,这种缓慢是不可避免的吗? – Allen 2012-02-03 06:03:47