1B課程筆記分享_StudyJams_2017

来源:http://www.cnblogs.com/DerekKen/archive/2017/05/07/6822625.html
-Advertisement-
Play Games

課程1B主要講解了Android UI的ViewGroups(視圖組)、LinearLayout(線性佈局)、RelativeLayout(相對佈局),Portrait Mode(豎屏模式)、Landscape Mode(橫屏模式)以及layout_weight(佈局權重)在UI佈局中的用處。 此外... ...


課程1B

概述

  • 課程1B主要講解了Android UI的ViewGroups(視圖組)、LinearLayout(線性佈局)、RelativeLayout(相對佈局),Portrait Mode(豎屏模式)、Landscape Mode(橫屏模式)以及layout_weight(佈局權重)在UI佈局中的用處。
  • 此外,本次課程簡要提到了xml命名空間,能夠方便變數名的管理和使用以及避免變數名字衝突。

ViewGroups

  • 視圖組控制項引出了parent view、child view以及sibling view的概念;它們分別指的是兩個視圖間的父、子、兄弟關係,是一個相對概念,至少有兩個對象參與。
  • 需要註意的是,也是在1B課程中反覆強調過的,ViewGroups本身也是一種視圖

    LinearLayout

  • 應用線性佈局,首先應當設置佈局中元素的朝向(orientation):具體的取值有vertical、horizontal,分別指定佈局中元素按排列和按排列:

android:orientation="vertical"
android:orientation="horizontal"

RelativeLayout

  • 相對佈局中的控制項中的預設位置是屏幕的最左上方。
  • 相對佈局並不需要android:orientation屬性。
  • 相對佈局能夠以指定相對位置的方式來設置佈局中各元素(控制項)之間的相對位置,交給開發者自由定製的空間遠比LinearLayout大,當然相應地也會擁有更多屬性,變得更複雜一些。
  • 需要強調,在應用相對佈局進行Android UI設計前,要能夠理解相對佈局中的"相對"在不同的代碼上下文中可能會具有不同的含義。

    比如,
    1. ”相對“指的是相對於父視圖:
    android:layout_alignParentTop=“true”
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="false"
    android:layout_alignParentBottom="false"
    android:layout_centerHorizontal="false"
    android:layout_centerVertical="false"


     屬性android:layout_centerHorizontal、android:layout_centerVertical也是相對於父視圖的,分別設置控制項位於父視圖的水平居中以及垂直居中的位置。

      2. ”相對“指的是相對於錨視圖(anchor view):錨視圖是固定的,其它視圖可以指定與錨視圖的相對位置。

    android:layout_toLeftOf=“@id/some_id1_prev_defined”
    android:layout_toRightOf=“@id/some_id2_prev_defined”
  • [提示1] RelativeLayout的其他參數還有很多,搜索android RelativeLayout layout Params等關鍵字能夠獲取到關於相對佈局的詳細文檔或者API參考手冊。
    開發者應該在平時註意鍛煉自己查找資料,解決問題的能力,課程中介紹到的Android Developers就是很好的Android開發的參考網站。


Margin&Padding

  • 外邊距(Margin)、內邊距(Padding)的概念在UI設計中很早就出現了。
  • Padding控制單個控制項內部元素和該控制項邊界之間的距離。
  • 比如說,TextView中的文本與四周邊界的距離的控制:
android:padding="8dp" 



      或者控制文本與某一邊界之間的距離:

android:paddingLeft="8dp" 
android:paddingRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"


  • Margin屬性的使用的前提是,必須位於一個視圖組中,否則就沒有“外”邊距的存在了。即外邊距是相對兩個父子(parent-child)控制項之間而言的。
  • 用外邊距控制兩個控制項之間的相對位置:
android:layout_margin="8dp" 
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"



    第一個表達式與後四個的效果是等價,都是設置兩個父子控制項之間的四周的邊距。

  • Margin與Padding之間的對比

下麵這張自己畫的圖應該能夠比較清晰地示意二者的區別,藍色方塊是一個ViewGroups控制項,也就是說它是綠色方塊的父視圖(Parent View),
這是外邊距存在的前提。



Fig1.Margin與Padding的對比

圖1.Margin與Padding的對比


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先瞭解一下Python的優點: Python為我們提供了非常完善的基礎代碼庫,覆蓋了網路、文件、GUI、資料庫、文本等大量內容,被形象地稱作“內置電池(batteries included)”。用Python開發,許多功能不必從零編寫,直接使用現成的即可。 除了內置的庫外,Python還有大量的第 ...
  • 上篇博客我們聊了《JavaEE開發之SpringBoot工程的創建、運行與配置》,從上篇博客的內容我們不難看出SpringBoot的便捷。本篇博客我們繼續在上篇博客的基礎上來看一下SpringBoot是如何引入和使用MyBatis和Thymeleaf的。在之前的博客中我們提到過Hibernate,今 ...
  • jvm記憶體模型 u 程式計數器 u Java棧(虛擬機棧) u 本地方法棧 u Java堆 u 方法區及其運行時常量池 垃圾回收機制 u 新生代和老年代 u 參數設置 u 垃圾回收(Minor GC 和 Full GC)和回收演算法 u finalize()、減少GC開銷、觸發主GC的條件 u 判斷無 ...
  • HashSet:哈希表是通過使用稱為散列法的機制來存儲信息的,元素並沒有以某種特定順序來存放; LinkedHashSet:以元素插入的順序來維護集合的鏈接表,允許以插入的順序在集合中迭代; TreeSet:提供一個使用樹結構存儲Set介面的實現,對象以升序順序存儲,訪問和遍歷的時間很快。 ...
  • 周末沒出門,熬了兩個夜整理代碼、打磨圖示,給大家奉上本文。敢說最準確,因為:1. 我嚴格對照所畫時序圖的每個步驟,開發了完整的跨域單點登錄範例;2. 所有服務端步驟,都在代碼中逐一標註,跟蹤代碼就能兩相對照,實際的深入理解流程;3. SSO核心在寫Cookie、URL傳參策略,其參與對象多、邏輯分支... ...
  • 本章一開始舉了中國古代對婦女制定的 “三從四德” 的道德規範,形象地將女性在 “未嫁 出嫁 喪父” 三個不同的狀態下請示出門逛街獲得的處理,未嫁的時候,請示父親;出嫁了,請示丈夫;丈夫去世了,請示兒子。責任鏈就是:父親 丈夫 兒子。如果出嫁了,請示父親,會得到什麼結果?答案是:父親告訴他,你該去請示 ...
  • 當EditText編輯時 hint 在 6.0 手機上顯示不出來。。。。 就要增加一句話去重新設置顏色值 Android:textColorHint = "#707070" ...
  • 原文鏈接:http://blog.csdn.net/zhang31jian/article/details/23258065 獲取SharedPreferences的兩種方式: 1 調用Context對象的getSharedPreferences()方法 2 調用Activity對象的getPref ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...