android基礎學習-android篇day12-android的UI基礎入門

發條魚發表於2018-09-16

Activity介紹

內容概覽:

  • -什麼是Activity?
  • -Activity的啟動流程
  • -Activity與佈局之間的關係
  • -Activity與View之間的關係

 什麼是Activity?

  • -Activity是一個應用程式元件
  • -為應用程式提供一個視覺化介面
  • -使用者與應用程式進行互動的介面

啟動Activity要素

 

什麼是XML?

  1. XML(Extensible Markup Language)也叫做可擴充套件標記語言.

  2. XML 是軟體開發中最常用的一項基本技能,在好多框架中都會用到 xml

  3. XML 也是一種資料交換格式。

 

XML與HTML的區別 

比較內容

HTML

XML

可擴充套件性 EXTENSION

不具有擴充套件性

是元標識語言,可用於定義新的標 識語言

側重點

側重於如何表現資訊

側重於如何結構化地描述資訊

語法要求

不要求標記的巢狀,配對等,不 要求標識之間具有一定的順序

嚴格要求巢狀,配對,並遵循 DTD (文件型別定義)的樹形結構

可讀性及可維護性

難於閱讀,維護

結構清晰,便於閱讀,維護

資料和顯示的關係

內容描述與顯示方式整合為一 體

內容描述與顯示方式相分離

保值性

不具有保值性

具有保值性

編輯及瀏覽工具

已有大量的編輯,瀏覽工具

編輯,瀏覽工具尚不成熟

更多說明:

  •   XML 同 HTML 都來自 SGML。
  •   HTML 是一種固定格式的超文字標識語言,因格式固定,標識有限,故難以擴充套件。
  • 而 XML 保留了 SGML 的可擴充套件功能,可以定義其他語言,同時,使用者可以自己定義 XML
  • 的標識。
  •   XML 提供了一個直接“處理”web 資料的通用方法,而 HTML 只是 web”顯示”資料的通用方法。
  •   XML 著重描述的是 web 頁面的”內容”,而 HTML 著重頁面”顯示格式“。
  •   XML 使機器能交談(能自動處理資訊),HTML 方便了人與人的交流(只是網路初級階段)。
  •   XML 具有良好的互動性,它可以在客戶機上進行資料操作,不需與伺服器互動,極大
  • 地減輕了伺服器的負擔。
  •   HTML 不支援深層的結構描述,而 XML 的檔案結構巢狀可以複雜到任何程度。

什麼是View? 

  • "螢幕方塊內所顯示的內容,都可以稱為View或View的子類"

 

如何獲取Acitivity中控制元件物件?

  • (TextView)findViewById(R.id.textView1);
  • 通過findViewById返回View型別
  • 通過(TextView)型別轉換View的向下轉型 為TextView

如何動態更改控制元件的屬性?

  • 第一步:獲取View的物件
  • 第二步:通過物件呼叫.set方法即可設定

為控制元件新增監聽器

  • Q:什麼是監聽器?

  • A:監聽器是一個物件,用於捕獲View的狀態。當View的狀態發生改變時可使用監聽器對其進行相應操作;
  • A:同一控制元件可以設定多種監聽器,對不同狀態進行捕獲監聽。 

新增監聽器的步驟 :

  1. 佈局檔案中定義控制元件
  2. 在Activity中定義控制元件類屬性
  3. 在Acitivity中獲取代表控制元件的物件
  4. 定義一個類實現監聽器的介面,並重新其抽象方法
  5. 生成監聽器物件
  6. 為控制元件新增監聽器

基礎佈局介紹

  • -什麼是Layout?

  • -Layout與ViewGroup之間的關係

  • -Layout實現方式

  • -Layout的種類

什麼是Layout?

  • Layout-介面佈局,為應用程式提供介面結構
  • 控制Activity中控制元件的大小、位置、顏色等熟悉的方法
  • 如果UI控制元件是盤子。Activity是餐桌,如何擺放盤子才能讓餐桌看起來美觀,使用Layout提供架構。

Layout與ViewGroup的關係

佈局的種類 

佈局的實現方式: 

編寫佈局檔案注意的問題

  1. 每一個Layout佈局檔案有且只有一個根標籤(元素),必須為View或者ViewGroup物件
  2. 在根標籤下,新增子元素,並逐漸建立一個View層次來定義你的Layout。

gravity屬性: 

gravity與layout_gravity

  • android:gravity: 用於設定該控制元件中內容相對於該控制元件的對對齊方式
  • android:layout_gravity: 用於設定該控制元件相對於父控制元件的對齊方式
  • 注意:
  • android:gravity:可以不用考慮當前佈局的方向
  • android:layout_gravity:需要考慮當前佈局的物件
  • 當父控制元件的位置android:orientation="vertical"為垂直方向時,layout_gravity只有水平方向的設定才起作用,垂直方向的設定 不起作用。即:left,right,center_horizontal 是生效的;而gravity都可以使用。

padding和 margin邊距的屬性

  • padding:
  • 用於設定該控制元件中內容相對於該控制元件的邊距,即內邊距。
  • margin:
  • 用於該控制元件相對於控制元件的邊距,即外邊距

weight屬性 :

layout_weight的值用於在線性佈局(只線上性佈局)中指定父控制元件剩餘空間的比例分配。

距離單位解析 

注意:在使用固定長度-單位設定的時候:設定控制元件寬高dp 字型大小sp

 

定義一個activity的流程:

  • -建立一個Activity子類
  • -重寫Acitivity中的oncreate方法
  • -在AndroidManifest.xml中對Activity進行註冊 

啟動一個activity流程:

  • -建立Intent意圖物件()
  • -呼叫setClass設定要啟動那個Activity
  • -呼叫startActivity進行跳轉

 

相關文章