最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年03月27日 14:09:59   作者:xueyangshipin  
這篇文章主要介紹了Android編程獲取組件尺寸大小的方法,結(jié)合實(shí)例形式分析了Android繪制組件之前獲取該組件大小的3種常見操作技巧,需要的朋友可以參考下

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

在oncreate()中利用view.getWidth()或是view.getHeiht()來獲取view的寬和高,看似沒有問題,其實(shí)他們?nèi)サ弥凳?,并不是你想要的結(jié)果?

這是為什么呢?

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

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

這里有三種方法,經(jīng)過驗(yàn)證的:

方法一 :

//測量方法
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();

方法二 :

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

方法三 :

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

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

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

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

相關(guān)文章

最新評論

鹿邑县| 秭归县| 辽中县| 武汉市| 吉安市| 汝州市| 锡林浩特市| 桂东县| 皮山县| 富锦市| 洛浦县| 塘沽区| 铁岭县| 富平县| 大同市| 七台河市| 阳朔县| 平昌县| 万年县| 武夷山市| 平湖市| 马尔康县| 夏津县| 札达县| 福清市| 隆昌县| 潮安县| 南木林县| 嘉祥县| 大宁县| 和田县| 南涧| 内乡县| 金华市| 乡宁县| 泗洪县| 乳山市| 山西省| 三河市| 施秉县| 南丹县|