Android常用佈局(FrameLayout(框架佈局)、LinearLayout(線性佈局)、RelativeLayout(相對佈局))詳解
很多開發者一聽說Android終端的螢幕尺寸五花八門,螢幕解析度千奇百怪,就覺得Android開發在螢幕適配方面是必定是一件頭疼的事情。因為在Android問世之前,廣大開發者知道的UI解決方案大致分為兩類:
1、在Web開發中的CSS,一層一層的去層疊樣式。
2、在iOS開發中去計算每一個UIView的尺寸。
上面兩種方案,無論哪種方案面對碎片化嚴重的Android終端,那都是一場噩夢。好在Android提供了另一套解決方案來應對嚴重的終端碎片化,這就是佈局和9-patch。
這裡想來說說佈局,在Android SDK剛剛問世的時候,Android提供了AbsoluteLayout,FrameLayout,LinearLayout,RelativeLayout和Tablelayout五大布局來應對終端碎片化問題。
但很快Android發現AbsoluteLayout是一個愚蠢的方案,在Android 1.5系統中就不再支援此佈局,剩下的四個佈局中,Tablelayout雖然依然被支援,但是由於Fragment以及新的TabLayout的出現,博主在此斷言,Tablelayout也命不久矣,被移除支援只是遲早的事兒。
所以,Android的五大基本佈局現在只剩下三個(這裡說的是基本佈局,在Android support包裡引入的新的佈局不計入內),下面分別介紹一下這三個基本佈局。
一、FrameLayout
FrameLayout應該是Android系統中最簡單的佈局了,在FrameLayout中的元素,預設都是以FrameLayout控制元件的坐上頂點作為基準點,一層一層的重疊起來,後加進來的元素覆蓋前面的元素。
下面先來一個演示,程式碼如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
< FrameLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent" >
< View
android:layout_width = "200dp"
android:layout_height = "200dp"
android:background = "#ff0000" />
< View
android:layout_width = "200dp"
android:layout_height = "200dp"
android:background = "#000000" />
< View
android:layout_width = "200dp"
android:layout_height = "200dp"
android:layout_margin = "100dp"
android:background = "#00ff00" />
</ FrameLayout >
|
執行結果如下:
相關推薦
Android常用佈局(FrameLayout(框架佈局)、LinearLayout(線性佈局)、RelativeLayout(相對佈局))詳解
很多開發者一聽說Android終端的螢幕尺寸五花八門,螢幕解析度千奇百怪,就覺得Android開發在螢幕適配方面是必定是一件頭疼的事情。因為在Android問世之前,廣大開發者知道的UI解決方案大致分為兩類: 1、在Web開發中的CSS,一層一層的去層疊樣式。
Android:控制元件佈局(相對佈局)RelativeLayout RelativeLayout是相對佈局控制元件:以控制元件之間相對位置或相對父容器位置進行排列。 相對佈局常用屬性: 子類控制元件相對子
RelativeLayout是相對佈局控制元件:以控制元件之間相對位置或相對父容器位置進行排列。 相對佈局常用屬性: 子類控制元件相對子類控制元件:值是另外一個控制元件的id android:layout_above----------位於給定DI控制元件之上 android:layout_below -
Android常用ViewGroup之FrameLayout
簡介 幀佈局或叫層佈局,從螢幕左上角按照層次堆疊方式佈局,後面的控制元件覆蓋前面的控制元件,核心就是檢視的層疊。類似於圖層,這種檢視的疊加思路在開發中處處可見。 重要屬性 子View使用的屬性 - android:layout_gravity 調整子View
(轉)Arcgis for Js之Graphiclayer擴展詳解
不同的 nes library 創建 都是 拖拽 oms hang graph http://blog.csdn.net/gisshixisheng/article/details/41208185 在前兩節,講到了兩種不同方式的聚類,一種是基於距離的,一種是基於區域範圍
(轉載)--SG函數和SG定理【詳解】
nbsp 發現 方式 spa 賦值 problem eve 查詢 mex 在介紹SG函數和SG定理之前我們先介紹介紹必勝點與必敗點吧. 必勝點和必敗點的概念: P點:必敗點,換而言之,就是誰處於此位置,則在雙方操作正確的情況下必敗。 N
Android"掛逼"修煉之行---微信中定位照片的位置信息插件開發詳解
頁面 blank 如果 put 法律 mali 特殊字符 在哪裏 加載 一、前言 最近關於微信中,朋友之間發送原圖就可能暴露你的位置信息,其實這個問題不在於微信,微信是為了更好的體驗效果,才有發送原圖功能,而對於拍照,發送普通圖片微信後臺都會過濾圖片的exif信息,這樣就
(總結)Nginx配置文件nginx.conf中文詳解
頁面 ulimit 正常 index.php 獲取 權重 bsd types keepal PS:Nginx使用有兩三年了,現在經常碰到有新用戶問一些很基本的問題,我也沒時間一一回答,今天下午花了點時間,結合自己的使用經驗,把Nginx的主要配置參數說明分享一下,也參考了一
(總結)關於Linux的快取記憶體 Cache Memory詳解
Linux與Win的記憶體管理不同,會盡量快取記憶體以提高讀寫效能,通常叫做Cache Memory。有時候你會發現沒有什麼程式在執行,但是使用top或free命令看到可用記憶體free項會很少,此時檢視系統的 /proc/meminfo 檔案,會發現有一項 Cached Memory:
osgEarth的Rex引擎原理分析(十七)瓦片請求的生成到處理過程詳解
目標:(十六)中問題38 瓦片請求的大概過程是這樣的: 1、osgEarth::Drivers::RexTerrainEngine::TileNode在渲染遍歷時產生LoadTileData請求,將請求傳遞給DatabsePager改造成DatabaseRequest請求後,將此請求放入了D
jvm原理(34)虛方法表與動態分派機制詳解
編寫程式碼: public class MyTest7 { public static void main(String[] args) { Animal animal = new Animal(); Animal
MySQL(一)MySQL中的隔離級別,事務詳解
MySQL的基礎語法,增刪改查就不多贅述了,我打算直接從事務開始,以後如果寫到了,再補充相關的知識。 參考文章: https://www.cnblogs.com/songjy2116/p/7881294.html https://blog.csdn.net/alexdamiao/arti
C++學習之路(47)---C++類模板與模板類深入詳解
1、在c++的Template中很多地方都用到了typename與class這兩個關鍵字,而且有時候二者可以替換,那麼是不是這兩個關鍵字完全一樣呢? 事實上class用於定義類,在模板引入c++後,最初定義模板的方法為:template<class T>,這裡cl
[Xcode10 實際操作]一、博主領進門-(8)應用代理文件(AppDelegate.swift)詳解
工作 active delegate ring launching 應用 exe 界面 sources 本文將演示使用iOS模擬器,演示程序的生命周期。 在項目導航區,打開應用代理文件【AppDelegate.swift】 應用代理文件時系統運行本應用的委托,裏面定義了
Linux(13)RedHat7 基本命令十一--cat命令詳解
導言 今天博文講述檢視檔案內容的命令,這個命令是cat。cat命令是最簡單粗暴的命令,將檔案內容直接打印出來。 cat命令 作用 將[檔案]或標準輸入組合輸出到標準輸出。 通俗來講,可以用
Linux(14)RedHat7 基本命令十二--more命令詳解
導言 今天博文講述另一個檢視檔案內容的命令,這個命令是more。more 命令類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯
(大資料工程師學習路徑)第四步 SQL基礎課程----select詳解
準備 在正式開始本內容之前,需要先從github下載相關程式碼,搭建好一個名為mysql_shiyan的資料庫(有三張表:department,employee,project),並向其中插入資料。 具體操作如下,首先輸入命令進入Desktop: cd Desktop 然後再輸入命
最完整的Mybatis Generator(簡稱MBG)的最完整配置檔案,帶詳解,
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0
http協議基礎(四)http狀態碼 Status Code狀態碼詳解對照表
一:http狀態碼 表示客戶端http請求的返回結果、標記伺服器端的處理是否正常、通知出現的錯誤等工作 狀態碼的類別如下: http狀態碼種類繁多,大概有60多種,實際上經常使用的只有14種,下面為一一介紹 1、2XX 成功:請求被正常處理 1.1 200 OK 表示從客戶端發
Java程式設計師從笨鳥到菜鳥之(七十四)細談Spring(六)spring之AOP基本概念和配置詳解
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! 首先我們來看一下官方文件所給我們的關於AOP的一些概念性詞語的解釋:切面(Aspect):一個關注點的模組化,這個關注點可能會橫切多個物件。事務管
Spark原始碼系列(九)Spark SQL初體驗之解析過程詳解
首先宣告一下這個版本的程式碼是1.1的,之前講的都是1.0的。 Spark支援兩種模式,一種是在spark裡面直接寫sql,可以通過sql來查詢物件,類似.net的LINQ一樣,另外一種支援hive的HQL。不管是哪種方式,下面提到的步驟都會有,不同的是具體的執行過程。下面