Android GridView加速滚动

Android GridView加速滚动,android,performance,gridview,scroll,Android,Performance,Gridview,Scroll,我有一个GridView,其中每个单元格都包含一个带有特定文本颜色和特定背景图像的数字(见图) 下面是生成它的getView()方法可以提高滚动速度吗? 编辑:在此处更改我的代码。我认为上面的代码有点多余,但在其他方面还行。 public View getView(int position, View convertView, ViewGroup parent) { int row = getRow(position); int col = getCol(pos

我有一个GridView,其中每个单元格都包含一个带有特定文本颜色和特定背景图像的数字(见图)

下面是生成它的getView()方法可以提高滚动速度吗?


编辑:在此处更改我的代码。我认为上面的代码有点多余,但在其他方面还行。

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

缓存图像会加快速度吗(若会,那个将如何工作)?不确定这是否是你们的问题,除非那个些可绘制的是大的或什么的。你能描述一下你看到的滚动问题吗?你有滚动视图中的Gridview吗?速度有多慢,是在设备上还是在模拟器上,等等。图像很小,但可能有很多,最多2000个单元格。只有当网格中填充了大量单元格(不,没有scrollview)时,滚动才会变得不好,我正在设备上测试。在处理如此多的视图时,速度慢是不可避免的吗?如果只有11列5行,那么一次屏幕上只有55个单元格。所以你应该没事。getCol()和getRow()的性能如何?我使用的图片只是一个示例,用户可以自定义多达2000个单元格。getRow和getCol是一个快速计算工具,不用担心它们。
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;
}