Android常用單位
DPI
螢幕解析度的好壞,可以用 pixel density 來衡量. 而它的單位便是 dpi。dpi 越高的的螢幕, 可以顯示的越精細, 看下圖便可瞭解.
因此, Google 為了簡化區分這些不同裝置螢幕解析度的好壞,依 dpi 分成了四個不同的類別, 分別是: MDPI, HDPI, XHDPI, XXHDPI
160 dpi 的裝置屬於 MDPI, 240 dpi 即 HDPI, 320 dpi 是 XHDPI, 480 dpi 是 XXHDPI
以 MDPI 為最基本的解析度, 其他三個都是其倍數.
Density Independent Pixels (dp or dip)
Density Independent Pixels 簡寫為 dp or dip,是一個虛擬的解析度,目的是為了讓我們更好量化手機上的視覺大小.
1 dp 在 160 dpi (MDPI) 的裝置上的長度等於 1 pixel.
1 dp 在 320 dpi (HDPI) 的裝置上的長度等於 2 pixel.
以此類推, 因此有了這個公式:
Scale Independent Pixels(sp)
觀念跟dp一樣,用於設定字體大小,可以再根據使用者設定的字體再作放大縮小
TextView
顯示單行或多行不可修改的本文內容,有下列基本屬性:
/** 參考id,可以在Java代碼中透過findViewById()的方法取到該元件,然後進行相關操作 **/
android:id="@+id/my_text"
/** 元件的寬度 **/
android:layout_width="match_parent"
/** 元件的高度 **/
android:layout_height="wrap_content"
/** 設定元件中內容的對齊方向 **/
android:gravity="left"
/** 設定顯示的文字內容 **/
android:text="@string/app_name"
/** 設定文字顏色 **/
android:textColor="@color/input_color"
/** 設置字體風格,三個可選值:normal (無效果),bold (加粗),italic (斜體) **/
android:textStyle="normal"
/** 字體大小,單位一般是用sp **/
android:textSize="20sp"
/** 控件的背景顏色 **/
android:background="@color/input_background"
EditText
顯示單行或多行可修改的文本內容,由於是繼承TextView因此基本屬性同上,另介紹特殊屬性:
/**提示文字**/
android:hint="提示文字"
/** 提示文字顏色 **/
android:textColorHint="#95A1AA"
/** 獲得集點時,文字是否全選 **/
android:selectAllOnFocus="true"
/** 輸入類型**/
android:inputType="none"
inputType清單.文字類
android:inputType="none"
android:inputType="text"
android:inputType="textCapCharacters"
android:inputType="textCapWords"
android:inputType="textCapSentences"
android:inputType="textAutoCorrect"
android:inputType="textAutoComplete"
android:inputType="textMultiLine"
android:inputType="textImeMultiLine"
android:inputType="textNoSuggestions"
android:inputType="textUri"
android:inputType="textEmailAddress"
android:inputType="textEmailSubject"
android:inputType="textShortMessage"
android:inputType="textLongMessage"
android:inputType="textPersonName"
android:inputType="textPostalAddress"
android:inputType="textPassword"
android:inputType="textVisiblePassword"
android:inputType="textWebEditText"
android:inputType="textFilter"
android:inputType="textPhonetic"
inputType清單.數字類
android:inputType="number"
android:inputType="numberSigned"
android:inputType="numberDecimal"
android:inputType="phone"//播號鍵盤
android:inputType="datetime"
android:inputType="date"//日期鍵盤
android:inputType="time"//時間鍵盤
Button
按鈕,同樣是繼承TextView,因此基本屬性同上。
ImageView
用來顯示圖像
src屬性和blackground的區別
ImageView有兩個可以設置圖片的屬性,分別是:src和background
① background通常指的是背景,而src指的是內容
② 當使用src填入圖片時,是按照圖片大小直接填備,並不會進行拉伸, 而使用background填入圖片,則是會根據ImageView給定的寬度來進行拉伸
adjustViewBounds設置縮放是否維持長寬比
ImageView為提供了adjustViewBounds屬性,用於設置縮放時是否保持原圖長寬比。單獨設置不起作用,需要配合maxWidth和maxHeight屬性一起使用
- android:maxHeight:設置ImageView的最大高度
- android:maxWidth:設置ImageView的最大寬度
scaleType設置縮放類型
android:scaleType用於設置顯示的圖片如何縮放或者移動以適應ImageView的大小Java代碼中可以通過imageView.setScaleType(ImageView.ScaleType.CENTER);來設置~ 可選值如下:
- fitXY 對圖像的橫向與縱向進行獨立縮放,使得該圖片完全適應ImageView,但是圖片的橫縱比可能會發生改變
- fitStart 保持長寬比縮放圖片,縮放完成後圖片會置於ImageView的左上角
- fitCenter 同上,縮放後放於中間
- fitEnd 同上,縮放後放於右下角
- center 保持原圖的大小,顯示在ImageView的中心。 當原圖的size大於ImageView的size,超過部分裁剪處理。
- centerCrop 保持長寬比縮放圖片,直到完全覆蓋ImageView,可能會出現圖片的顯示不完全
- centerInside 保持長寬比縮放圖片,直到ImageView能夠完全地顯示圖片
- matrix 預設值,不改變原圖的大小,從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分作裁剪處理
background與src屬性相互搭配可達成如下圖的效果
ScrollView
一般對於內容於一個畫面中可能顯示不完的情況,我們可以直接在佈局的外層套上一個: ScrollView,捲動方式為垂直方向或者對應水平方向上的滾動條:HorizontalScrollView
ScrollView是繼承自FrameLayout的容器,添加了滾動,允許顯示比實際多的內容。
需注意的是只能夠往裡面放置一個子元素,可以是單一的元件,又或者一個佈局包裹著的複雜的層次結構。