2012-02-03 104 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