2

我想了解如何根据返回的位置找到用户单击的网格视图的坐标(x,y)?

    0 1 2 
    3 4 5
    6 7 8

如果我使用 4 作为所选项目,我可以确定它在第 1 行

 4 / columnLength(3) = 1.3 etc 

但是计算列的最佳方法是什么?还是有一些我可以利用的内置方法?

4

3 回答 3

4

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

于 2013-04-18T16:20:59.943 回答
0

你可以尝试这样的事情,虽然我以前从未做过。

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();
    }
});
于 2013-04-18T15:43:24.990 回答
0

y = 位置 - (x*columnLength);

于 2013-04-18T16:07:54.927 回答