當前位置:首頁 » 安卓系統 » android獲取布局的高度

android獲取布局的高度

發布時間: 2023-01-07 07:02:18

A. android開發中,行LinearLayout布局,怎麼設置高度

用relativelayout 不要用LinearLayout 然後裡面的布局 一個頂部 一個底部 中間部分 layout_above和layout_below 就可以了

B. android 開發的時候怎麼動態設置控制項寬高

1、獲取控制項所在的布局

java">LayoutParamspara=button.getLayoutParams();//獲取按鈕的布局

2、修改布局中的height,width屬性

para.width=200;//修改寬度
para.height=300;//修改高度

3、重新設置修改後的布局給控制項

button.setLayoutParams(para);//設置修改後的布局。

C. android如何根據屏幕的大小動態布局UI

DisplayMetrics dm = new DisplayMetrics();//獲取當前顯示的界面大小
getWindowManager().getDefaultDisplay().getMetrics(dm);
dm.widthPixels //獲取當前界面的寬度
dm.heightPixels//獲取當前界面的高度
再用AbsoluteLayout布局,動態添加所要顯示的界面位置坐標,就搞定了

D. android 代碼里獲取XML里的布局 修改高度

第一個參數是寬,第二個是高

E. 求一個實現android布局文件整體縮放的實現方法

題主可以先繼承布局類,如另寫一個類繼承LineatLayout ,然後實現onMeasure()方法,在方法裡面獲取布局的寬度和高度,再根據獲取到的寬度和高度 設置控制項內元素的寬高,比如元素Title的高 TitleHeight = measureHeight *0.5 ,意思是占布局高的二分之一,這時就可以整體縮放了。
onmeasure()內獲取寬高的方法:
int measureWidth = measureWidth(widthMeasureSpec);
int measureHeight = measureHeight(heightMeasureSpec);

其中寬度的函數:
private int measureWidth(int widthMeasureSpec) {
int specMode = MeasureSpec.getMode(widthMeasureSpec);
int specSize = MeasureSpec.getSize(widthMeasureSpec);
int result = 500;
if (specMode == MeasureSpec.AT_MOST) {
result = specSize;
} else if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
}
return result;
}

F. android獲取布局的高高度和寬度的問題

imageback.post(newRunnable(){
run(){
intw=imageback.getWidth().
}
})

只有在View執行完measure之後,才會有width和height

G. 關於Android布局你不知道的

Android常見的5個布局,我想大家一定不會陌生。LinearLayout、RelativeLayout和FrameLayout也是使用頻率較高的布局方式,做Android開發的一定使用過。

傳統的5種布局方式:

不過我的問題並不是問面試者如何使用這些基礎的布局,而是要看面試者怎麼解決布局嵌套(影響性能)和屏幕適配問題。

我們都清楚Android界面的布局太復雜,嵌套層次過深,會使整個界面的測量、布局和繪制變得更復雜,對性能會造成影響。所以我們在寫Layout文件時,也要盡量避免布局的嵌套層次過深的問題。

在怎麼解決問題之前,我們得有一個好方法先判斷當前的問題情況。Android SDK工具箱中有一個叫做Hierarchy Viewer的工具,能夠在App運行時分析Layout。

注意: 在ROOT的手機,或者是安裝開發版的ROM的手機可以直接使用Hierarchy Viewer。如果沒有Root的手機(SDK 4.1及以上),需要在你的PC端添加一個環境變數「ANDROID_HVPROTO=ddm」。

下面列舉一些面試者常使用的方式。

merge merge標簽的作用是合並UI布局,使用該標簽能降低UI布局的嵌套層次。

merge標簽可用於兩種情況:

ViewStub ViewStub標簽引入的布局默認不會inflate,既不會顯示也不會佔用位置。 ViewStub常用來引入那些默認不會顯示,只在特殊情況下顯示的布局,如數據載入進度布局、出錯提示布局等。

需要在使用時手動inflate:

ViewStub在一定的程度可以起到減少嵌套層次的作用,特別是很多時候我們的程序可能不需要走到ViewStub的界面。

include 將可復用的組件抽取出來並通過include標簽使用,但<include>標簽能減少布局的層次嗎?

我認為不能。include主要解決的是相同布局的復用問題,它並不能減少布局的層次。

用RelativeLayout代替LinearLayout

很多人為了減少布局層次喜歡用RelativeLayout代替LinearLayout,不過可能達到的效果並不會很明顯。層次是減少了,但本身RelativeLayout就會比LinearLayout性能差一點。

有一些界面,比如一個圖片和一個文本的布局(ListItem常見的布局方式),可以利用TextView有drawableLeft, drawableRight等屬性,完全不需要RelativeLayout或者LinearLayout布局。

傳統的布局方式存在一定的缺陷,如RelativeLayout要兩次測量(measure)它的子View才能知道確切的高度;如果LinearLayout布局的子View有設置了layout_weight,那麼它也需要測量兩次才能獲得布局的高度。

相對於傳統的布局方式,Android官方還推出了兩種新的布局方式:ConstraintLayout和FlexboxLayout。

ConstraintLayout ConstraintLayout即約束布局,在2016年由Google I/O推出。ConstraintLayout和RelativeLayout有點類似,控制項之間根據依賴關系而存在,但比RelativeLayout更加靈活。創建大型復雜的布局仍然可以使用扁平的層級(不用嵌套View Group),說的簡單些就是,再復雜的界面也可以只有2層層次。

要使用ConstraintLayout需要在build.gradle中添加相關的support庫:

使用ConstraintLayout可以有效的解決布局嵌套過多導致的性能問題,官方也對其渲染性能進行了優化,並且ConstraintLayout支持可視化的方式編寫布局。

不過學會熟練使用ConstraintLayout會需要一點時間,但這是值得的。

FlexBoxLayout 做過前端開發(CSS方面)的同學對FlexBox一定不會陌生,最近我在做微信小程序開發時也涉及到FlexBox。FlexBox(彈性布局)是w3c在2009年提出的一種新的布局方案,解決以前那種傳統css的盒模型的局限性。

Google開源了FlexboxLayout布局和前端CSS FlexBox布局具有相同的功能(肯定有不一樣的地方),但已經足夠在Android上改進布局的構建方式。

FlexBoxLayout可以理解成一種更高級的LinearLayout,不過比LinearLayout更加強大和靈活。如果我們使用LinearLayout布局的話,那麼不同的解析度,也許我們要重新調整布局,勢必會需要跟多的布局文件放在不同的資源目錄。而使用FlexBoxLayout來布局的話,它可以適應各種界面的改變(所以叫響應式布局)。

如果對前端的Flexbox不太了解的話,你還需要補一些概念,好在這些東西在網上很容易找到。

可能很多讀者會覺這樣的面試題是吹毛求疵,很多項目中哪有這么復雜的界面,根本就用不到這些優化措施。

可以說厲害的人,或者叫高手,可能只是比較多在意這些細節而已。在實踐中的經歷告訴我,很多難於解決的性能問題,並不是因為有一個影響性能的問題無法攻克,而是沒有一個明顯的制約因素,是有各種小問題一點一點堆積起來,最終積重難返。

所以,把細節做好,或者意識到細節的地方可能引發的問題,對我們解決問題是很有幫助的,不要浪費了讓你可以成長的細節。

有需要更多Android高級進階和面試資料的朋友可以私信我獲取

H. Android在XMl布局中如何獲取屏幕的高度,求高手指點。

只有wrap_content fill_parent match_parent 沒有其他

I. android 怎麼知道listview的總高度

不知道題主的listview單項布局用的是自定義的還是系統的,如果是系統的那就改變不了,系統自帶的布局就是類似simple_item這樣的,在使用適配器adapter的時候也是new SimpleAdapter 這樣。 如果自定義一個listview , 那在單項布局裡就可以直接設置它的高度,layout_height="70dp" 。自定義listview的使用需要自己寫一個list_item單項布局和相對應的adapter 。

熱點內容
ps4密碼設置有什麼要求 發布:2025-05-17 08:49:16 瀏覽:69
文本編譯工具 發布:2025-05-17 08:47:47 瀏覽:3
phpc語言 發布:2025-05-17 08:45:30 瀏覽:806
蘋果6s怎麼設置4位密碼 發布:2025-05-17 08:41:14 瀏覽:180
如何玩cf端游越南伺服器 發布:2025-05-17 08:38:54 瀏覽:184
雜訊的危害和控制設計腳本 發布:2025-05-17 08:22:29 瀏覽:474
esr演算法 發布:2025-05-17 08:16:09 瀏覽:195
安卓手機怎麼用擬我表情 發布:2025-05-17 08:10:13 瀏覽:919
給U盤安裝kalilinux 發布:2025-05-17 08:07:26 瀏覽:250
sql提示存儲過程 發布:2025-05-17 07:35:58 瀏覽:744