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

首頁 > 系統 > Android > 正文

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

2019-10-23 18:33:30
字體:
來源:轉載
供稿:網友

本文實例講述了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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 呼图壁县| 长丰县| 灌云县| 中西区| 南安市| 郧西县| 江城| 中宁县| 长泰县| 鄂州市| 三亚市| 宁明县| 南川市| 辉县市| 准格尔旗| 宜城市| 巴楚县| 翁源县| 黄骅市| 乌兰察布市| 尚义县| 长顺县| 阳原县| 修水县| 山东省| 周口市| 汝州市| 米林县| 珠海市| 齐齐哈尔市| 高州市| 克东县| 行唐县| 改则县| 从化市| 江川县| 杂多县| 略阳县| 澄迈县| 张家港市| 眉山市|