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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...