android獲得當前view在屏幕中坐標的方法
本文實例講述了android獲得當前view在屏幕中坐標的方法。分享給大家供大家參考。具體如下:
final int[] location = new int[2]; view.getLocationOnScreen(location);
這樣就可以得到該視圖在全局坐標系中的x,y值,(注意這個值是要從屏幕頂端算起,也就是說包括了通知欄的高度)
//獲取在當前屏幕內(nèi)的絕對坐標 location[0] x坐標 location[1] y坐標
應(yīng)用 ,我們可以用來記錄上一次listview滾動到了那里
首先我們需要一個記錄當前滾動位置的全局變量:
然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中獲取 OldListY:
lstView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int Pos[] = { -1, -1 }; //保存當前坐標的數(shù)組 arg1.getLocationOnScreen(Pos); //獲取選中的 Item 在屏幕中的位置,以左上角為原點 (0, 0) OldListY = (float) Pos[1]; //我們只取 Y 坐標就行了 } });
最后要做的就是在 setAdapter() 后恢復(fù)先前的位置:
... lstView.setAdapter(adapter); // 重新綁定Adapter lstView.setSelectionFromTop(index, (int) OldListY); // 恢復(fù)剛才的位置
希望本文所述對大家的Android程序設(shè)計有所幫助。
相關(guān)文章
Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進程,線程分析
這篇文章主要介紹了Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進程,線程分析,較為詳細的分析了Android應(yīng)用程序模型中關(guān)于任務(wù)、進程、線程的相關(guān)概念及注意事項,需要的朋友可以參考下2016-01-01Android側(cè)滑菜單控件DrawerLayout使用詳解
這篇文章主要為大家詳細介紹了Android側(cè)滑菜單控件DrawerLayout的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12