Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android界面設計學習日志(二)

Android界面設計學習日志(二)

編輯:Android開發實例

本次學習主要是說android的項目的各個文件的作用,以及相互之間的調用,對於學習andriod軟件開發有很大的好處。只要了解運行機制才能更好的控制各個模塊和用戶的交互。同時這樣能更好的了解他的運行機制以及生命周期。

通過上一篇文章,大概了解了Android用戶界面的設計方式,以及如何通過XML來設計界面。並且完成了一個非常簡單的示例。 在上一篇文章中,涉及到了一些資源文件,直觀點說,就是res目錄下的那些目錄和文件,常用的有:
  • res/drawable/ 用來存放圖片文件
  • res/layout/ 用來存放布局定義文件
  • res/values/ 用來存放一些變量、參數等文件
這些資源文件都是獨立於代碼而存在的,那麼在代碼中又是如何訪問到這些資源的呢? 在 Android的代碼中,有一個文件比較奇怪,第一次接觸到Android代碼的人都應該迷惑過,這個文件就是R.java,在R.java的注釋部分, 有這樣一段話:“AUTO-GENERATE FILE. DO NOT MODIFY”,這個文件是自動生成的,不要修改。
  • 這個文件就是Java代碼和獨立於Java代碼的資源文件之間的訪問窗口,Java程序可以通過R.java來訪問那些資源文件。
  • 這個文件是在程序編譯過程中由aapt(Android Asset Packaging Tool) 自動生成
  • 這個文件中的屬性都是public static final的,所以可以直接在Java代碼中引用,每個屬性都代表一個資源,看起來就像為每個資源都定義了一個ID,然後通過這個ID來訪問資源
  • 所有的資源文件都被編譯進最後生成的二進制包中,這樣能夠帶來很高的性能和效率
按照前面的示例,那麼在R.java中會存在像這樣一段代碼: public final class R {
        public static final class attr {
        }
        public static final class drawable {
                public static final int icon=0x7f020000;
        }
        public static final class layout {
                public static final int main=0x7f030000;
        }
        public static final class string {
                public static final int app_name=0x7f040001;
                public static final int hello=0x7f040000;
        }
} 這裡面的main就是由res/layout/main.xml生成的,其他兩個常量是由res/drawable/下icon.png和res/values/strings.xml生成的。
接下來在看一下,如何在Java代碼中使用這個R.java,創建一個文件Adventure.java :(開始快樂的學習旅程^_^)
package com.penguin.adventure;

import android.app.Activity;
import android.os.Bundle;

public class Adventure extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }
} 注意這其中的R.layout.main,通過setContextView(),被Java程序調用。 這段代碼中引入了另外一個非常重要的概念:Activity,到目前為止,已經介紹的另外兩個比較重要的概念是 ViewGroup和View。如果套用時髦的MVC來理解的話:ViewGroup和View屬於View領域的東西,Activity可以理解為 Control領域的東西,雖然可以這麼類比著來理解,但是Activity其實做了更多的事情,由它將View和一些數據、操作等結合在一起,完成一個相對完整的行為、活動。所以,任何 View要被顯示,必須通過Activity來進行。這樣每個Activity都會包含特定的行為,多個Activity互相合作,最終組成一個完整的 Android程序。
在示例的Activity中,有一個onCreate()方法,這個方法會在此Activity被創建的時刻調用。在方法內部,設置此 Activity的視圖為R.layout.main中定義的視圖,也就是res/layout/main.xml中定義的視圖 (視圖、布局、GUI、UI在這裡已經混合使用了,並且他們意義相同,後文統一用View表示)。 Activity所包含的內容很多,會用單獨的一篇文章來詳細介紹。 說到此處,我們應該知道如何創建一個View,並通過Activity將其顯示在屏幕上。接下來事情,就是用戶如何和這個Activity交互。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved