Android 更改网格单元的颜色
我想使用网格位置的数量更改网格单元的颜色。e、 我有5X6网格意味着30个网格项目,所以我想更改第21个位置的颜色。请告诉我如何在不单击网格视图的情况下执行此操作。首先,您必须确定网格的顺序、列的位置和线的位置。例如: 123445 678910 等等 然后做一个乘法运算Android 更改网格单元的颜色,android,gridview,onclick,Android,Gridview,Onclick,我想使用网格位置的数量更改网格单元的颜色。e、 我有5X6网格意味着30个网格项目,所以我想更改第21个位置的颜色。请告诉我如何在不单击网格视图的情况下执行此操作。首先,您必须确定网格的顺序、列的位置和线的位置。例如: 123445 678910 等等 然后做一个乘法运算 i = Y*numberOfColums + X; grid[i].myColor = Color(R,G,B); 我假设索引为0,这意味着: 如果有6列: 0 <= X <= 5 0为了在扩大网格单元布局的
i = Y*numberOfColums + X;
grid[i].myColor = Color(R,G,B);
我假设索引为0,这意味着:
如果有6列:
0 <= X <= 5
0为了在扩大网格单元布局的同时设置网格单元的颜色,请在baseadapter类中创建一个单元的数组,然后根据需要设置颜色
像
然后
此处griditm是布局网格项的id,您需要为此定义自定义适配器。
在适配器的getView()
方法中,如果等于21,则必须检查position
参数。如果等于21,则更改当前单元格的背景
如果您还没有定义自定义适配器的经验,那么首先通过一个示例将更有意义。
下面是一个使用的GridView示例,您的GridView是否有适配器?那么我看不出您有什么问题。只要在到达第21个元素时更改颜色即可
0 <= Y <=4
for(int x = 0; x < numberOfColumns; x++)
{
for(int y = 0; y < numberOfRows; y++)
{
i = Y*numberOfColums + X;
}
}
LayoutInflater li = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grd = li.inflate(R.layout.grid_item, null);
FrameLayout dgcl = (FrameLayout) grd.findViewById(R.id.grditm);
parent_l[position] = dgcl;
parent_l[21].setBackgroundColor(Color.RED);