編輯:Android開發實例
我們重點在獲取view的y坐標,你懂的...
依次介紹以下四個方法:
1.getLocationInWindow
- int[] position = new int[2];
- textview.getLocationInWindow(position);
- System.out.println("getLocationInWindow:" + position[0] + "," + position[1]);
這個方法是將view的左上角坐標存入數組中.此坐標是相對當前activity而言.
若是普通activity,則y坐標為可見的狀態欄高度+可見的標題欄高度+view左上角到標題欄底部的距離.
可見的意思是:在隱藏了狀態欄/標題欄的情況下,它們的高度以0計算.
若是對話框式的activity,則y坐標為可見的標題欄高度+view到標題欄底部的距離.
此時是無視狀態欄的有無的.
2.getLocationOnScreen
- int[] position = new int[2];
- textview.getLocationOnScreen(position);
- System.out.println("getLocationOnScreen:" + position[0] + "," + position[1]);
這個方法跟上面的差不多,也是將view的左上角坐標存入數組中.但此坐標是相對整個屏幕而言.
y坐標為view左上角到屏幕頂部的距離.
3.getGlobalVisibleRect
- Rect viewRect = new Rect();
- textview.getGlobalVisibleRect(viewRect);
- System.out.println(viewRect);
這個方法是構建一個Rect用來"套"這個view.此Rect的坐標是相對當前activity而言.
若是普通activity,則Rect的top為可見的狀態欄高度+可見的標題欄高度+Rect左上角到標題欄底部的距離.
若是對話框式的activity,則y坐標為Rect的top為可見的標題欄高度+Rect左上角到標題欄底部的距離.
此時是無視狀態欄的有無的.
4.getLocalVisibleRect
- Rect globeRect = new Rect();
- button.getLocalVisibleRect(globeRect);
注意:
以上方法在OnCreate方法中調用,都會返回0,這是因為View還未加載完畢.
建議在onWindowFocusChanged方法中進行獲取,有些情況下onWindowFocusChanged不好用的時候(比如ActivityGroup),可以這樣寫:
- mTextView.post(new Runnable() {
- @Override
- public void run() {
- Rect viewRect = new Rect();
- mTextView.getGlobalVisibleRect(viewRect);
- mTreeScrollView.setRect(viewRect);
- }
- });
這樣在View加載完畢之後會執行獲取位置的方法.
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
可以使用該套 SDK開發適用於Android系統移動設備的地圖應用,通過調用地圖SDK接口,您可以輕松訪問百度地圖服務和數據,構建功能豐富、交互性強的LBS(地圖
前言 SQLite是一種輕量級的小型數據庫,雖然比較小,但是功能相對比較完善,一些常見的數據庫基本功能也具有,在現在的嵌入式系統中使用該數據庫的比較多,因為