Ch04 使用基本介面元件與編排模式 物件導向系統實務.

Slides:



Advertisements
Similar presentations
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
Advertisements

第二章 Android 简单界面开发 倚动软件工厂实验室 View 组件介绍 布局管理器 自定义组件 目录 CONTENTS.
E-portfolio 個人履歷網站教學
第一單元 建立java 程式.
第2章  Android应用的界面编程.
太陽_介面設計.
Excel –格式設定 資訊教育.
實驗五:多媒體播放器選單介面.
Part 1 學習使用基本介面元件和編排模式 單元11 學習更多介面元件的屬性 單元12 Spinner下拉式選單元件
Part 2 開發Android應用程式的流程
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
嵌入式系統與 Android系統 Embedded System & Android
Chapter 5 迴圈.
Chapter 4 手機控制項應用.
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
第7章 Android文件与本地数据库(SQLite)
Chapter 13 Android 實戰演練.
DreamWeaver MX (II) 林偉川.
Chapter 6 Advanced UI Design.
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
CH10 對話框與分頁.
Chapter 6 進階UI設計.
1. 檔案File  開新New  檔案Empty File (再另存新檔D:\hello.c)
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Android 基礎.
CSS樣式 靜宜大學 資管系 楊子青.
Android五大布局 线性布局/相对布局.
實驗十四:顯示與控制地圖.
RecyclerView and CardView
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
Visual Basic 物件導向程式設計簡介.
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
檔案與磁碟的基本介紹.
Chap3 Linked List 鏈結串列.
第一單元 建立java 程式.
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Ch20. 計算器 (Mac 版本).
Android Studio介面設計 建國科技大學資管系 饒瑞佶 2016/3 V1.
HTML – 超連結與圖片 資訊教育.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
BC430 ABAP Dictionary Views、 Search Help 報告者:林聖期、程汎汝.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
Word – 排版 資訊教育.
GridView.
GridView操作 (II).
如何使用Gene Ontology 網址:
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
MicroSim pspice.
利用 EditorConfig 自訂文字編輯器設定
班級:404班 時間:星期二第八節 教師:黃韋欽師
MiRanda Java Interface v1.0的使用方法
CSS樣式 靜宜大學 資管系 楊子青.
陣列與結構.
RecyclerView and CardView
Android Speech To Text(STT)
使用者介面元件佈局.
布局管理器 本讲大纲: 1、线性布局 2、表格布局 3、帧布局 4、相对布局 5、范例1:使用表格布局与线性布局实现分类工具栏
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
第五章 自訂佈景主題與文字處理 講授者:詹雅愔.
Zotero_搞定中文、英文格式 中臺圖書館.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
InputStreamReader Console Scanner
Presentation transcript:

Ch04 使用基本介面元件與編排模式 物件導向系統實務

大綱 介面元件的屬性 介面編排:LinerLayout、TableLayout、RelativeLayout

介面元件的屬性

常用的介面元件屬性 屬性名稱 設定值 使用說明 android:id 元件的名稱 設定該介面元件的名稱 android:layout_width android:layout_height fill_parent, match_parent, wrap_content 設定元件的寬和高,fill_parent是舊的屬性值 android:text 元件中的文字 顯示在元件中的文字 android:inputType Text, number, date, time, … 輸入的資料類型,textMultiLine是多行文字 android:background 顏色(6個16進位數字,例如FF0000) 儲存在drawable資料夾中的圖形 設定元件的底色或底圖,顏色以#開頭 android:textSize 數值和sp長度單位 設定文字大小 android:textColor 顏色 設定文字顏色,顏色以#開頭 android:password true, false 用暗碼顯示防止被他人窺視,新版的程式改成用inputType屬性控制 android:autoLink web, email, phone, map, all 自動偵測字串中的超連結資料 android:hint 元件中的提示文字 當EditText元件中沒有輸入任何資料時所顯示的字串 android:layout_margin android:layout_marginXXX 數值和dp長度單位 設定元件四周的間隔距離 android:padding android:paddingXXX 設定元件內部的文字和邊的距離 android:gravity center_hotizontal, center_vertical, center 元件中的物件的對齊方式 android:layout_gravity 元件相對於外框的對齊方式

介面元件屬性使用的長度單位 Android SDK建議如果是設定介面元件的位置、大小、和邊界距離的相關屬性應該使用dp長度單位,如果是設定字體大小的相關屬性,則應該使用sp長度單位。

match_parent和wrap_content的差別 match_parent和fill_parent的效果是一樣的,二者都是填滿元件所在的外框,wrap_content則是依照元件中的文字長度或高度來決定元件的寬或高。 <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="EditText1" /> android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="EditText2" />

android:inputType範例 用來限制輸入的字元種類,如果設定成text就能夠輸入任何字元,如果設定成number就只能輸入數字,當設定成date時可以輸入數字和斜線’/’字元,當設定成time時則可以輸入數字和分號’:’字元以及pam等3個英文字母 <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" android:inputType="text" /> android:inputType="number" /> android:inputType="date" /> android:inputType="time" />

控制文字大小、顏色和底色 <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="預設的文字大小" /> android:text="10sp文字" android:textSize="10sp“ /> android:text="20sp綠色文字" android:textSize="20sp" android:textColor="#00FF00" /> android:text="30sp綠色文字,黑色底色" android:textSize="30sp" android:textColor="#00FF00" android:background="#000000" /> 使用android:textSize、android:textColor、android:background來改變文字的大小、顏色,以及元件的底色

控制元件四周的間隔距離以及元件內部的文字和邊的距離 使用margin相關屬性來增加元件和外框之間的距離,以及使用padding相關屬性來增加元件內的文字和元件邊框的距離 <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="預設的間隔" /> android:text="設定padding=20dp" android:padding="20dp" /> android:text="再設定margin=20dp" android:padding="20dp" android:layout_margin="20dp" /> android:text="只設定左右margin=30dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" />

介面編排:LinerLayout、TableLayout、RelativeLayout

LinearLayout範例 LinearLayout標籤是一種介面元件的編排方式,顧名思義它 就是依照線性次序由上往下(或是由左而右)逐一排列介面 元件。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width=“match_parent" android:layout_height=“matchl_parent“ > <TextView … android:text="姓名:" /> <EditText … android:text="輸入姓名" /> <Button … android:text="確定" /> </LinearLayout>

水平排列的LinearLayout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width=“match_parent" android:layout_height=“match_parent" > <TextView … android:layout_width="wrap_content" android:text="姓名:" /> <EditText … android:text="輸入姓名" /> <Button … android:text="確定" /> </LinearLayout>

二層LinearLayout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" … > <LinearLayout android:orientation="horizontal“ android:background="#FFFFFF" … > <TextView … android:textColor="#000000" android:text="姓名:" /> <EditText… android:text="輸入姓名" /> </LinearLayout> <Button … android:text="確定" />

TableLayout範例 TableLayout就是把介面元件依照表格的方式排列,也就是由 上往下一列接著一列,而且前後每一個欄位依序對齊。<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="400dp" android:layout_height="match_parent" android:layout_gravity="center_horizontal" > <TableRow> <TextView android:text="姓名:"/> <TextView android:text="性別:"/> <TextView android:text="生日:"/> </TableRow> <EditText android:text="輸入姓名"/> <EditText android:text="輸入性別"/> <EditText android:text="輸入生日"/> <Button android:text="確定"/> </TableLayout>

使用TableLayout的注意事項 1. 包裹在TableRow標籤中的介面元件它的 android:layout_width和 android:layout_height屬性都沒有作用,也就 是說不管把它們的值設定為” match_parent” 或是”wrap_content”,都一律使 用”wrap_content”模式,因此可以直接把這二 個屬性省略。

使用TableLayout的注意事項 2. 像是android:backgroud設定底色的屬性、 android:gravity設定對齊方式的屬性、和 android:layout_margin設定元件的距離等類似功能的屬 性都可以用於TableLayout和TableRow標籤中,例如可 以在上面範例的第一個TableRow標籤中加入 android:gravity=“center_horizontal”就可以將第一列 的介面元件做水平置中對齊。

使用TableLayout的注意事項 3. 如果TableLayout標籤中的介面元件沒有被包含 在TableRow標籤中,則該元件會自成一列如上 面範例的Button元件。

使用TableLayout的注意事項 如果要讓TableRow標籤中的元件依比例使用整個Table的寬度,可 以藉助android:layout_weight屬性,它會將同一列元件所有的 weight值加總後,再依照每一個元件的weight值的比例計算所佔的 寬度。 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="400dp" android:layout_height="match_parent" android:layout_gravity="center_horizontal" > <TableRow> <TextView android:text="姓名:" android:layout_weight="1"/> <TextView android:text="性別:" <TextView android:text="生日:" </TableRow> …

使用TableLayout的注意事項 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" … > <TableLayout … > <TableRow> <TextView android:text="姓名:"/> … </TableRow> <EditText android:text="輸入姓名"/> </TableLayout> <Button android:text="確定"/> 如果希望TableLayout 標籤中的TableRow內元 件可以錯開如下的畫面, 可以在TableLayout標 籤中再增加一個 TableLayout標籤

RelativeLayout範例 RelativeLayout是靠指定介面元件之間的相對位置關係來決定它們的排列 方式,為了能夠辨識每一個元件,我們必須指定每一個元件的id名稱。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout … > <TextView android:id="@+id/txt1" …/> <TextView android:id="@+id/txt2" … android:layout_toRightOf="@id/txt1"/> <EditText android:id="@+id/edt1" android:layout_below="@id/txt1"/> <EditText android:id="@+id/edt2" android:layout_toRightOf="@id/edt1"/> <Button android:id="@+id/btn1" android:layout_below="@id/edt1"/> </RelativeLayout>

RelativeLayout範例(加上align屬性) <?xml version="1.0" encoding="utf-8"?> <RelativeLayout … > <TextView android:id="@+id/txt1" …/> <TextView android:id="@+id/txt2" … android:layout_toRightOf="@id/txt1"/> <EditText android:id="@+id/edt1" android:layout_below="@id/txt1"/> <EditText android:id="@+id/edt2" android:layout_toRightOf="@id/edt1“ android:layout_alignTop="@id/edt1"/> <Button android:id="@+id/btn1" android:layout_below="@id/edt1"/> </RelativeLayout>

RelativeLayout相關屬性 屬性類別 屬性名稱 屬性值 說明 指定相對位置 layout_toLeftOf “id/某一個介面元件id名稱” 將介面元件置於指定介面元件的左邊 layout_toRightOf 將介面元件置於指定介面元件的右邊 layout_above 將介面元件置於指定介面元件的上方 layout_below 將介面元件置於指定介面元件的下方 指定對齊方式 layout_alignLeft 將介面元件和指定介面元件的左邊對齊 layout_alignRight 將介面元件和指定介面元件的右邊對齊 layout_alignTop 將介面元件和指定介面元件的上緣對齊 layout_alignBottom 將介面元件和指定介面元件的下緣對齊 layout_alignBaseLine 將介面元件和指定介面元件的中心線對齊 layout_alignParentLeft “true”或”false” 將介面元件對齊它所在的外框左邊 layout_alignParentRight 將介面元件對齊它所在的外框右邊 layout_alignParentTop 將介面元件對齊它所在的外框上緣 layout_alignParentBottom 將介面元件對齊它所在的外框下緣

使用RelativeLayout的注意事項 最先宣告的介面元件會放在螢幕的左上方,如果後面宣告的介面元件指 定的位置是在第一個介面元件的左邊或是上方,那麼就會看不到這個介 面元件。例如以下範例將看不到edt1元件。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout … > <TextView android:id="@+id/txt1“ …/> … <EditText android:id="@+id/edt1“ android:layout_above="@id/txt1"/> ... </RelativeLayout> 這個問題有二種解決方法,首先可以利用android:layout_center相關的 屬性把第一個宣告的元件往螢幕的右下方移動。第二個解決方法是調整 介面元件宣告的次序,例如把範例中的edt1元件放到前面宣告,然後指 定txt1元件置於edt1的下方。

RelativeLayout的成果 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/txt1" …/> <EditText android:id="@+id/edt1" … android:layout_below="@id/txt1"/> <EditText android:id="@+id/edt2" android:layout_toRightOf="@id/edt1" android:layout_alignTop="@id/edt1"/> <TextView android:id="@+id/txt2" android:layout_above="@id/edt2" android:layout_alignLeft="@id/edt2"/> <Button android:id="@+id/btn1" android:layout_below="@id/edt1"/> </RelativeLayout>