第一章 初識Android
一、Android應用程式框架
src:存放的是應用程式使用到的java檔案
gen:系統自動生成的目錄。不需要程式設計師進行修改。包含了R檔案,該檔案中包含了程式中使用到的資原始檔對應生成的唯一的資源ID。注意:如果R檔案發生錯誤一般都是資原始檔出現的錯誤。
assets:存放應用程式使用的資源。在這個資料夾存在的資源需要讀取的時候使用的是二進位制流。存在於這個資料夾中的檔案會被原封不動地打包進入apk。
bin:編譯生成的目錄。主要獲取裡面生成的apk檔案。
libs:存放三方的jar檔案的目錄。
res:資源儲存的目錄。
- res/drawable:存放的是圖片資源。存放不同解析度對應使用的圖片資源。按照解析度的由小到大分別是:low-middle-high-xh-xxh。
- res/layout:包含了應用程式中使用到的一系列的佈局檔案。使用的時候一般會在程式碼中通過R.layout.XXX
- menu:包含了選單中使用的item定義的內容。
- res/value:包含了應用程式使用到的尺寸(dimens.xml)、字串(strings.xml)、樣式(styles.xml)等資源。通過@進行呼叫。如果在xml中使用res中的資源,大部分都是通過資原始檔/資源的name
- res/values-sw600dp:使用sw屬性針對螢幕進行區分。使用在多螢幕適配的過程中。
- res/values-v11 v14:同樣在多螢幕適配中考慮。
- AndroidManifest.xml:應用程式級別的配置檔案。很重要。定義了應用程式的主包名、版本號、最低的sdk版本和目標sdk版本。還包括管理頁面的活動(Activity),在Activity的宣告標籤中,存在IntetFilter,又叫做Intent的過濾器。用於過濾對應的Intent物件來實現到底呈現的是哪一個介面。
- proguard-project.txt:用來進行程式碼混淆的檔案。
- project.properties:可以修改目標版本。
- raw:存放應用程式中使用到的媒體資源。
二、常用的除錯工具
- adb:Android Debug Bridge安卓除錯橋,在PC的CMD中使用adb shell可以進入連線在PC上的模擬器或真機的Linux環境。
- DDMS:全稱是Davik Debug Monitor Service,是Android開發環境中的Dalvik虛擬機器除錯監控服務。
- AVD Manager:AVD的管理器,用於新建和管理現有的Android模擬器。
- LogCat:日誌記錄工具。Log.i("SNG","該句程式碼被執行");
- SDK Manager:SDK的管理器,使用自動更新的方式從Google伺服器下載最新的SDK版本及工具到本機。
三、Android佈局介紹
- Android中所有UI(使用者介面)元素都是使用View和ViewGroup物件建立的。
(1)View是一個可以將一些資訊繪製在螢幕上並與使用者產生互動的物件(比如:一個按鈕)
(2)ViewGroup是一個包含多個View和ViewGroup的容器,用來定義UI佈局。
(3)ViewGruop是View的子類。 - UI開發分類
(1)介面佈局開發——定義介面的佈局。
(2)控制元件開發——定義單個介面元素。
(3)AdapterView與Adapter介面卡開發——列表顯示。
(4)UI元件開發——對話方塊、通知、選單等。
(5)自定義View、圖形影象和動畫——通過程式碼,自行繪製介面。 - 常用的佈局:
(1)LinerLayout——線性佈局
(2)RelativeLayout——相對佈局
(3)FrameLayout——幀佈局
(4)TableLayout——表格佈局
(5)AbsoluteLayout——絕對佈局
(6)GridLayout——網格佈局 - 佈局定義方式:
(1)定義UI佈局最常用的方法是使用XML佈局檔案
(2)如同HTML一樣,XML為佈局提供了一種可讀的結構。
(3)XML中的每個元素都是View或ViewGroup的子孫類的物件。
(4)可以把每一個XML佈局檔案理解為一個由View和ViewGroup的子孫類物件組成的樹。
(5)樹根是一個ViewGroup物件,所有的葉結點都是View物件,樹的分支結點都是ViewGroup物件。
四、Android UI適配
1. 手機螢幕基本概念
- 螢幕尺寸
螢幕的對角線長度。單位為英寸。
1英寸 = 2.54釐米 - 螢幕解析度
水平和垂直方向的畫素點的個數。單位是px。
1px = 1畫素點
一般以垂直畫素×水平畫素,如1280*720 - 螢幕畫素密度
指的是每英寸上的畫素點數。單位是dpi/ppi(dot per inch)。
螢幕畫素密度與螢幕尺寸和螢幕解析度有關。
例:5英寸19201080螢幕解析度的手機,ppi為441:[ 根號(19201920+1080*1080) ]/5 - 螢幕畫素密度DPI劃分
MDPI:~160dpi 1× 320480
HDPI:~240dpi 1.5× 480800
XHDPI:~320dpi 2×
XXHDPI:~480dpi 3×
XXXHDPI:~640dpi 4×
2. dp dip px sp概念
px:畫素點,構成影象的最小單位。
dip/dp:device independent pixels(裝置獨立畫素)。也是密度無關畫素。
sp:專門用於文字顯示的大小,一般為偶數。
3. UI 線性佈局
1. 概念
- LinearLayout,即線性佈局,其中的控制元件為自動按照水平或垂直的方式一次排列。
- RelativeLayout,即相對佈局,其中的控制元件是相對於其他控制元件的位置進行排布的,而且往往需要定義每一個控制元件的資源ID。
- TableLayout,即表格佈局,屬於行和列形式的管理控制元件,每行為一個TableRow物件,也可以是一個View物件。在TableRow中還可以繼續新增其他的控制元件,每新增一個子控制元件就成為一列。TableLayout不會生成邊框。<strong>它是線性佈局的子類。</strong>
- FrameLayout,即幀佈局,預設是按照左上角(0,0)開始排布,定義的控制元件每一個都是以畫面的形式進行呈現。最開始定義的控制元件出現在最下方,最後定義的控制元件出現在最上面。可用在手機聯絡人的字母導航顯示上,或者用於幀動畫。
- AbsoluteLayout,即絕對佈局,又可稱為座標佈局,可以直接指定子元素的絕對位置,簡單直接,直觀性強。
- GirdLayout,即網格佈局,可實現合併行和列的效果。是在Android4.0後出現的佈局。
2. XML中LinearLayout佈局的各種屬性</h2>
- orientation:用來指定當前的線性佈局排布的方向(horizontal/vertical),預設為水平。
- margin和padding:控制元件可以設定margin和padding。
- wrap_content關鍵字:環繞內容(和內容同寬)。
- match_parent關鍵字:匹配父類(和父類同寬)。
- gravity:表示控制元件的內部內容的對齊方式(類似text-align)。
- layout_gravity:用於設定該view在父類中的對齊方式。 <strong>注意:如果線性佈局的排布方式為水平,那麼控制元件的layout_gravity在水平方向上就不起作用;垂直排布類似。</strong>
- layout_weight——LinearLayout特有的屬性:表示比重,可實現百分比佈局。 <strong>如果控制元件為“<i>match_parent</i>”,則layout_weight的值與佔用比重是反相關的,其值越大,佔用的比重越小。</strong> <strong>如果控制元件為“<i>wrap_content</i>”,則對比重的判斷會變成正相關,其值越小,佔用的比重越小。</strong> <strong>注意:系統會先給無權重的控制元件分配空間後再對需要百分比的空間大小進行百分比的劃分。</strong>
3. XML中RelativeLayout佈局中的各種屬性</h2>
- layout_alignParentXXX:對齊父容器XXX部
- layout_marginXXX:表示間距
- layout_centerVertical:垂直居中
- layout_centerHorizontal:水平居中
- layout_centerInparent:正中央
- layout_alignXXX:表示對齊方式
- layout_toRightOf:在某個控制元件對齊
- layout_alignBaseline:基準線對齊
- layout_below:位於下方
4. XML中TableLayout佈局中的各種屬性
- collapseColumns:如果該列被標誌,則該列會被隱藏。
- stretchColums:拉伸某一列,使得佈局顯得不緊湊。
- shrinkColumns:回縮某一列,使得整體內容得以呈現。
- TableRow的寬和高可以不指定,系統會自動給定對應的寬和高。
5. XML中AbsoluteLayout佈局中的各種屬性
- layout_x:確定X座標,以左上角為頂點。
- layout_y:確定Y座標,以左上角為頂點。
6. XML中GridLayout網格佈局
- 234為佈局內控制元件的屬性設定,56為佈局標籤的屬性設定。
- layout_columnSpan:擴充套件列的數目。
- layout_rowSpan:擴充套件行的數目。
- layout_gravity:填充方式。
- columCount:列規定。
- rowCount:行規定。
相關文章
- 第一章 初識 LinuxLinux
- 電商專案——初識電商——第一章
- 第一章:初識3D列印3D
- Android NDK初識Android
- Android-Window(一)——初識WindowAndroid
- Android2.3原始碼初識Android原始碼
- Android高階之Dalvik初識Android
- C語言程式設計入門之--第一章初識程式C語言程式設計
- Android Architecture Components 系列一(初識)Android
- Android 編譯時註解-初認識Android編譯
- 初識Android之Activity的生命週期Android
- 《Redis開發與運維》第一章 初識Redis 讀書筆記Redis運維筆記
- Android NDK祕籍--初識NDK、JNI、Makefile/CMakeAndroid
- 初識Android觸控事件傳遞機制Android事件
- Gradle for Android 系列:初識 Gradle 檔案GradleAndroid
- 《Terraform 101 從入門到實踐》 第一章 Terraform初相識ORM
- VB初級教程(第一章) (轉)
- 初識MybatisMyBatis
- 初識 DockerDocker
- rocketmq初識MQ
- 初識 reduxRedux
- 初識GitGit
- Express初識Express
- Kafka 初識Kafka
- 初識 “HTML”HTML
- 初識GolangGolang
- 初識dockerDocker
- 初識RedisRedis
- 初識GOGo
- 初識promisePromise
- 初識VueVue
- 初識JSJS
- 初識jQueryjQuery
- 初識JavaScriptJavaScript
- 初識WebAssemblyWeb
- 初識機器學習機器學習
- 初識JVMJVM
- 初識HaphoopOOP