欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android獲得當(dāng)前view在屏幕中坐標(biāo)的方法

 更新時(shí)間:2015年10月08日 14:35:18   作者:pgalxx  
這篇文章主要介紹了android獲得當(dāng)前view在屏幕中坐標(biāo)的方法,涉及Android針對(duì)view坐標(biāo)相關(guān)屬性的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了android獲得當(dāng)前view在屏幕中坐標(biāo)的方法。分享給大家供大家參考。具體如下:

final int[] location = new int[2];
view.getLocationOnScreen(location);

這樣就可以得到該視圖在全局坐標(biāo)系中的x,y值,(注意這個(gè)值是要從屏幕頂端算起,也就是說(shuō)包括了通知欄的高度)

//獲取在當(dāng)前屏幕內(nèi)的絕對(duì)坐標(biāo)
location[0] x坐標(biāo)
location[1] y坐標(biāo)

應(yīng)用 ,我們可以用來(lái)記錄上一次listview滾動(dòng)到了那里

首先我們需要一個(gè)記錄當(dāng)前滾動(dòng)位置的全局變量:

復(fù)制代碼 代碼如下:
private float OldListY = -1;

然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中獲取 OldListY:

lstView.setOnItemClickListener(new OnItemClickListener()  
{  
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
  {
    int Pos[] = { -1, -1 }; //保存當(dāng)前坐標(biāo)的數(shù)組
    arg1.getLocationOnScreen(Pos); //獲取選中的 Item 在屏幕中的位置,以左上角為原點(diǎn) (0, 0)
    OldListY = (float) Pos[1]; //我們只取 Y 坐標(biāo)就行了
  }
});

最后要做的就是在 setAdapter() 后恢復(fù)先前的位置:

...  
lstView.setAdapter(adapter); // 重新綁定Adapter
lstView.setSelectionFromTop(index, (int) OldListY); // 恢復(fù)剛才的位置

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論