国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程獲取組件尺寸大小的方法

2019-12-12 03:16:14
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程獲取組件尺寸大小的方法。分享給大家供大家參考,具體如下:

在oncreate()中利用view.getWidth()或是view.getHeiht()來獲取view的寬和高,看似沒有問題,其實他們去得值是0,并不是你想要的結果?

這是為什么呢?

在調用oncreate()方法時,界面處于不可見狀態,內存加載組件還沒有繪制出來,你是無法獲取他的尺寸。

那如何在繪制組件之前能獲取到該組件的尺寸大小呢?

這里有三種方法,經過驗證的:

方法一 :

//測量方法int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);view.measure(width,height);int height=view.getMeasuredHeight();int width=view.getMeasuredWidth();

方法二 :

//增加組件繪制之前的監聽ViewTreeObserver vto =view.getViewTreeObserver();vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {  @Override public ooleanonPreDraw() {    int height =view.getMeasuredHeight();    int width =view.getMeasuredWidth();  }});

方法三 :

//增加整體布局監聽ViewTreeObserver vto = view.getViewTreeObserver();vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){  @Override public voidonGlobalLayout() {   view.getViewTreeObserver().removeGlobalOnLayoutListener(this);  int height =view.getMeasuredHeight();  int width =view.getMeasuredWidth();  }});

那么,在activity進入運行期時,組件的尺寸獲取方法就很簡單了,直接getWidth()和getHeight().

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滦南县| 山东| 泉州市| 密山市| 康保县| 丁青县| 兴国县| 武冈市| 蒲江县| 浦江县| 安新县| 华池县| 岳普湖县| 灵璧县| 江永县| 扶余县| 藁城市| 白银市| 张家口市| 上虞市| 平原县| 景洪市| 乌鲁木齐市| 佳木斯市| 珲春市| 溧阳市| 郓城县| 文昌市| 商水县| 南通市| 钟山县| 宁明县| 买车| 泸溪县| 西盟| 沂源县| 黔西县| 南开区| 改则县| 涞水县| 揭阳市|