[Android Studio #3] 使用Android Asset Studio產生圖示檔與@+id與@id之差異
drawable相關資料夾(預設是drawable-hdpi、drawable-mdpi、drawable-xdpi、drawable-xxdpi)裡都有個代表應用程式的圖示圖檔ic_launcher.png(ic=icon),每個應用程式預設就必須提供四種不同解析度的圖檔,幸好Android Asset Studio提供了簡便産生此類圖檔的服務,只要上傳一個圖片,它就能幫我們自動産生出四種圖檔。
Android Asset Studio的操作很簡單,用IMAGE上傳圖檔後,網頁就會顯示四種解析度的圖示畫面,調整需要的選項後,網頁會自動顯示出對應的大小圖示,按DOWNLOAD ZIP就能下載檔案,解壓縮到 res 資料夾裡就可能建立新的圖示。在Android Studio的Project對話窗裡雙擊ic_launch.png就能在新分頁顯示圖片,如果畫面沒有立即更新的話,可以點擊功能表 File > Synchronize,立即做檔案系統的同步處理。
增加ImageView元件
接著我們再把activity_main.xml切換到Design頁面,點選調色盤上的ImageView,將游標移到手機畫面中央放開,剛開始圖形只是一個小方塊,雙擊之並選擇上述的res/drawable裡的ic_launch.png,再修改右側的ImageView元件的相關特性(Properties),例如layout:width、layout:height等。
layout:width與layout:height能指定元件的寬度與高度,其值為下列三類之一:
- 一般的尺寸單位:如300dp
- wrap_content:包裹住元件的尺寸大小
- match_parent或fill_parent:填滿其父元件的尺寸大小
當我們放置第二個元件後,activity_main.xml裡的元件設定裡就會多出android:id的屬性,用來辨識不同的元件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/textView" /> <ImageView android:layout_width="150dp" android:layout_height="150dp" android:id="@+id/imageView" android:src="@drawable/ic_launcher" android:layout_alignParentStart="false" android:layout_centerVertical="true" android:layout_toRightOf="@+id/textView" /> </RelativeLayout>
@+id與@id有何差異
元件ID有兩種指定格式:
- @+id/元件ID:指定元件的ID,加號的意義是讓運行時的系統建立該元件。有時我們在第一個元件要參考到第二個元件,此時就必須使用@+id/第二個元件ID。也就是說加號是為了解決向前參考(forward reference)而設計的:要參考尚未定義的元件時,就要使用@+id
- @id/元件ID:參考已經定義過的元件
舉例說明,如果我們把activity_main.xml裡ImageView元件的定義移到TextView元件的前面時,ImageView裡的android:layout_toRightOf="@+id/textView"
就一定要使用@+id/textView(因為textView在imageView後面尚未定義,而我們就要先使用它了),原本例子裡先寫TextView再寫ImageView時,其實是可以寫成@id/textView的(因為textView已經有定義了)。
不過,使用Android Studio建立activity_main.xml時應該不用去特別注意這些細節,它固定使用@+id!
##
您可能也會有興趣的類似文章
- [Android Studio #2] 操作資源XML檔 (0則留言, 2013/10/03)
- Android Studio的安裝、設定與執行 (4則留言, 2013/10/03)
- 開發Android應用程式時操作SQLite資料庫的方法 (0則留言, 2019/03/30)
- [Windows] IntelliJ IDEA啟動緩慢的解決方法(適用JetBrains各個工具,包含Android Studio) (0則留言, 2019/07/14)
- Android Studio無法在Ubuntu 64位元環境執行的解決方法 (0則留言, 2013/11/03)
- 用Android Studio增加多語系資源目錄 (2則留言, 2013/11/22)
- Android Studio添加外部程式庫的步驟 (0則留言, 2013/11/19)
- [Android Studio #8] 自動產生onClick事件程式碼 (0則留言, 2015/03/22)
- Genymotion Emulator:x86架構最快速的Android模擬器,加快Android程式開發 (2則留言, 2013/11/16)
- [Android Studio #9] 無法執行x86模擬器的處理步驟 (2則留言, 2015/04/20)
- [IntelliJ IDEA] 如何總公司決匯入舊版Android應用時的Cannot resolve symbol R問題 (0則留言, 2019/02/14)
- 找到最麻吉的Android手機桌面程式 十之六:Holo Launcher (0則留言, 2012/10/14)
- 找到最麻吉的Android手機桌面程式 十之五:ADW.Launcher (0則留言, 2012/10/14)
- 悲催上班族必備Android工具:Desktop Notifications,讓電腦瀏覽器同步顯示手機的通知訊息 (2則留言, 2013/07/22)
- 便利的Android程式啟動器:FAppSter,功能類似Launchy的隨打即找 (0則留言, 2013/08/06)
Sorry, 很久沒用Google sc…