我想了解如何根据返回的位置找到用户点击的gridview的坐标(x,y)?
0 1 2
3 4 5
6 7 8
如果我使用4作为所选项目,我可以知道它在第1行
4 / columnLength(3) = 1.3 etc
但是最好的方法是对列进行计算? 还是有一些我可以利用的内置方法?
答案 0 :(得分:4)
首先我们需要定义一些东西
int numberOfColumns;//should be able to get this from the view
int numberOfRows = Math.ceil(items.Count / numberOfColumns);
然后我们可以找出位置
int row = Math.ceil((position + 1) / numberOfColumns);
int column = (row * numberOfColumns) - position;
应该这样做
答案 1 :(得分: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();
}
});
答案 2 :(得分:0)
y = position - (x * columnLength);