我想了解如何根据返回的位置找到用户单击的网格视图的坐标(x,y)?
0 1 2
3 4 5
6 7 8
如果我使用 4 作为所选项目,我可以确定它在第 1 行
4 / columnLength(3) = 1.3 etc
但是计算列的最佳方法是什么?还是有一些我可以利用的内置方法?
我想了解如何根据返回的位置找到用户单击的网格视图的坐标(x,y)?
0 1 2
3 4 5
6 7 8
如果我使用 4 作为所选项目,我可以确定它在第 1 行
4 / columnLength(3) = 1.3 etc
但是计算列的最佳方法是什么?还是有一些我可以利用的内置方法?
first we need to define a few things
int numberOfColumns;//should be able to get this from the view
int numberOfRows = Math.ceil(items.Count / numberOfColumns);
then we can figure out the position
int row = Math.ceil((position + 1) / numberOfColumns);
int column = (row * numberOfColumns) - position;
that should do it
你可以尝试这样的事情,虽然我以前从未做过。
GridView gv = new GridView(this);
gv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
event.getX();
event.getY();
}
});
y = 位置 - (x*columnLength);