android 獲取控制元件大小和設定調整控制元件的位置XY
2013-06-19 14:10
網上很多人對設定控制元件的位置都使用 view.setPadding(left, top, right, bottom) ,其實這玩意很差勁,它是設定自己本身位置的偏移,我們很少需要這種效果,我需要的設定控制元件相對螢幕左上角的X 、Y位置。眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處!
- import android.view.View;
- import android.view.ViewGroup.MarginLayoutParams;
- import android.widget.RelativeLayout;
- /*
- * 獲取、設定控制元件資訊
- */
- public class WidgetController {
- /*
- * 獲取控制元件寬
- */
- public static int getWidth(View view)
- {
- int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
- int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
- view.measure(w, h);
- return (view.getMeasuredWidth());
- }
- /*
- * 獲取控制元件高
- */
- public static int getHeight(View view)
- {
- int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
- int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
- view.measure(w, h);
- return (view.getMeasuredHeight());
- }
- /*
- * 設定控制元件所在的位置X,並且不改變寬高,
- * X為絕對位置,此時Y可能歸0
- */
- public static void setLayoutX(View view,int x)
- {
- MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
- margin.setMargins(x,margin.topMargin, x+margin.width, margin.bottomMargin);
- RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
- view.setLayoutParams(layoutParams);
- }
- /*
- * 設定控制元件所在的位置Y,並且不改變寬高,
- * Y為絕對位置,此時X可能歸0
- */
- public static void setLayoutY(View view,int y)
- {
- MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
- margin.setMargins(margin.leftMargin,y, margin.rightMargin, y+margin.height);
- RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
- view.setLayoutParams(layoutParams);
- }
- /*
- * 設定控制元件所在的位置YY,並且不改變寬高,
- * XY為絕對位置
- */
- public static void setLayout(View view,int x,int y)
- {
- MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
- margin.setMargins(x,y, x+margin.width, y+margin.height);
- RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
- view.setLayoutParams(layoutParams);
- }
- }
相關文章
- easysize_動態調整對話方塊控制元件位置和大小控制元件
- Android 仿微信/支付寶 字型大小 調整控制元件Android控制元件
- [WPF]獲取控制元件間的相對位置控制元件
- iOS開發之尺寸(二):仿寫App截圖獲取控制元件大小位置iOSAPP控制元件
- Android獲取螢幕和控制元件座標Android控制元件
- android獲取控制元件的幾種方法Android控制元件
- 高dpi下,Vb.net調整控制元件位置的小經驗控制元件
- android 根據控制元件的ID字串利用反射獲取UI控制元件Android控制元件字串反射UI
- WPF執行緒中獲取控制元件的值和給控制元件賦值執行緒控制元件賦值
- input 獲取游標位置與設定游標位置
- Android獲取dialog自定義佈局中的控制元件Android控制元件
- 如何設定textarea文字框不可以調整大小
- Iframe 父子窗體互調javascript方法及相互獲取控制元件JavaScript控制元件
- iOS UIView分類調整控制元件座標iOSUIView控制元件
- Android 設定控制元件陰影的三種方式Android控制元件
- unix 系統捕獲sql語句和手工調整AWR的設定SQL
- win10畫板調整大小為A4怎麼設定_win10畫板如何調整大小Win10
- 獲取元素大小、偏移量及滑鼠位置
- 控制元件自定義位置控制元件
- Espresso 如何獲取控制元件的實時文字?Espresso控制元件
- Java 獲取Excel中的表單控制元件JavaExcel控制元件
- 設定父控制元件的alpha 不影響子控制元件控制元件
- 利用RectGetter元件獲取控制元件位置尺寸實現的幾個高階效果和功能 | 掘金技術徵文控制元件
- JavaFx 頁面和控制元件設定快捷鍵Java控制元件
- VB:DEV控制元件之TreeList控制元件-獲取TreeList所有Node(遞迴)dev控制元件遞迴
- Android 動態佈局 動態生成 銷燬控制元件 改變控制元件的位置等Android控制元件
- Android自定義設定圓形圖片控制元件Android控制元件
- android獲取位置並上傳Android
- js 設定焦點 判斷控制元件是否獲得焦點 判斷哪個控制元件獲得焦點JS控制元件
- C#控制元件及常用設計整C#控制元件
- 在執行時使用滑鼠移動控制元件和改變控制元件的大小 (轉)控制元件
- 單據表頭錄入控制元件長度調整控制元件
- Android中ListView控制元件onItemClick事件中獲取listView傳遞的資料AndroidView控制元件事件
- WebBrowser 控制元件設計模式設定Web控制元件設計模式
- cookie的設定、獲取和刪除Cookie
- 設定父控制元件的alpha-但是不影響子控制元件控制元件
- android程式碼中動態調整圖片的位置Android
- 使用WebBrowser控制元件獲取網頁原始碼的方法Web控制元件網頁原始碼