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屬性,用於設置縮放時是否保持原圖長寬比。單獨設置不起作用,需要配合maxWidthmaxHeight屬性一起使用

  • 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,捲動方式為垂直方向或者對應水平方向上的滾動條:Horizo​​ntalScrollView

ScrollView是繼承自FrameLayout的容器,添加了滾動,允許顯示比實際多的內容。

需注意的是只能夠往裡面放置一個子元素,可以是單一的元件,又或者一個佈局包裹著的複雜的層次結構。

results matching ""

    No results matching ""