android學習筆記NO.5

來源:互聯網
上載者:User

標籤:android

Intent 可以理解為信使
由Intent來協助完成android各個組件之間的通訊。
感覺基礎薄弱就又複習了一遍基礎知識,整理了一遍!
gen 儲存自動產生的R資源檔夾
gen->com.android.helloworld.activity 包名稱
R.java 項目自動產生的資源索引類
Android 2.3.3->android.jar Android SDK Jar 檔案
assets 儲存原始資源的檔案夾
res 資源檔夾
drawable 儲存圖片等資源檔夾
drawable-icon.png 表徵圖檔案
layout 介面布局檔案
layout->main.xml 介面布局檔案
values 簡單值設定檔夾
values->strings.xml 字串設定檔
AndroidMainfest.xml Android配置資訊清單檔
default.xml 屬性檔案

pt:是螢幕的物理尺寸,大小為1英寸的1/72.
android:textScaleX 設定文字之間間隔,預設為1.0f
android:textColorLink 文字串連的顏色
android:textColorHint 設定提示資訊文字的顏色,預設為灰色。與hint一起使用。
android:textColorHighlight: 被選中文字的底色,預設為藍色。
android:textAppearance: 設定文字外觀。eg:?android:attr/textAppearanceLargeInverse 這裡引用的是系統內建的一個外觀,?表示系統是否有這種外觀,否則使用預設的外觀。
android:shadowDx: 設定陰影橫座標的起始位置。
android:shadowDy:設定陰影縱座標的起始位置。
android:shadowRadius 設定陰影的半徑。設定為0.1就變成字型的顏色了,一般設定為3.0的效果比較好。
android:shadowColor: 指定文本陰影的顏色,需要與shadowRadius一起使用。
android:phoneNumber: 設定為電話號碼的輸入方式。
android:password 以密碼的形式,一小數點的形式顯示。
android:ems 設定textview的寬度為N個字元的寬度。當與minEms和maxEms同時使用時覆蓋ems選項。
android:marqueeRepeatLimit 在ellipsize屬性為marquee的時候,設定跑馬燈重複滾動的次數,當設定為marquee_forever時,表示一直重複。
android:bufferType 指定getText() 方式取得的文本類別。
一個android應用程式由四部分組成:
1.activity
2.Intent Receiver
3.Service
4.Content Provider

1.一個activity通常在應用程式中是一個單獨的螢幕。每一個activity是被實現作為一個繼承於Activity基類的單獨的類。class 將要 顯示一個由view和響應事件組成的使用者介面。多數應用程式由多個螢幕組成。例如:一個簡訊發送程式可能有一個顯示要發送資訊的連絡人清單的螢幕,有一個給選中的連絡人編輯簡訊的螢幕,並且另外的螢幕顯示以前資訊或是更改設定。每一個這些螢幕應該作為一個Activity被實現。移動到另外的螢幕上是通過啟動一個新的Activity來完成的。由於一些原因,一個Activity可能會向先前的Activity返回一個值–例如:一個讓使用者選擇一個Photo的Activity將會返回選中的photo到caller應用程式上。當一個新的螢幕開啟,先前的螢幕被暫停並且壓入曆史堆棧。使用者可以向後導航返回到在記錄中先前開啟的螢幕。當它們遺留不恰當時,螢幕也可以選擇從曆史堆棧中刪除。android為每一個從Home螢幕上啟動並執行每一個應用程式保留曆史堆棧。
2.Intent 和 Intent Filter
android使用一個名叫Intent的特殊類來讓應用程式從一個螢幕移動到另一個螢幕。Intent描述一個應用程式的意圖。Intent資料結構的兩個重要的部分是:要相應的action和data。典型的action值是MAIN(應用程式的入口),VIEW,PICK,EDIT等等。DATA表示成一個統一資源定界符(URI),例如:要在瀏覽器中看一個網站,你將建立一個帶偶VIEw action的Intent 和設定了網站URI的data。

Android應用程式基底本功能單元式Activity 一個android.app.Activity類的物件(Object)。

被自己的應用程式編譯的資源可以不用包套件名 直接
R.resource_type.resource_name就可以引用。Android包含了一些標準資源,例如,螢幕風格和按鈕背景。為了將這些資源引用到代碼中,必須用android來表述它們。android.R.drawable.button_background

UI – java 方式跳過了~~~

在Android中調試不能用System.out.println(…)來做,
Android提供了許多強勁的調試特性—LogCat

LogCat 是DDMS(Dalvik 調試監視器服務)的一部分。它提供了一個收集和查看系統調試輸出的機制。來自不用應用程式的Log和系統部分被收集到可以查看和過濾的LogCat中。

V 詳細資料
D 調試
I 資訊
W 警告
E 錯誤

通過Intent可以進行Activity的跳轉。下邊是Activity跳轉的代碼,這裡加紅色有兩個Activity,一個是Activity A,另一個是Activity B,代碼如下:
Intent in = new Intent(A.this,B.class);
startActivity(in);
通過執行這兩句代碼,就可以實現從Activity A跳轉到
Activity B。

與Intent有關係的一個類叫Intent Filters 如果Intent是一個有效請求,Intent Filters則用於描述一個Activity(或者Intent Receiver)能夠操作哪些Intent。一個 Activity如果要顯示一個人的連絡方式時,需要聲明一個Intent Filters ,這個Intent Filters 要知道怎麼去處理VIEW動作和表示一個人的URI,Intent Filters 一般在AndroidManifest.xml中定義。

可以使用BroadcastReceiver 來讓應用對一個外部的事件做出響應。BroadcastReceiver 不能產生UI,也就是說對於使用者來說不是透明的,使用者是看不到的。BroadcastReceiver 通過NotificationManager 來通知使用者這些事情發生了!BroadcastReceiver 既可以在AndroidManifest.xml中註冊,也可以在啟動並執行代碼中使用Context.registerReceivers()進行註冊。只要註冊了,當事件來臨時,即使程式沒有啟動,系統也在需要的時候啟動程式。各種應用還可以通過使用 Contest.sendBroadcast()將他們自己的intent broadcasts廣播給其他應用程式。

Service 是一種程式,他可以運行很長的時間,但是他卻沒有使用者介面。後台歌曲持續播放,這個播放就是播放音樂的Service進行控制的。通過startService(Intent service)可以來啟動一個Service,通過Content.bindService() 可以綁定一個Service。

Content Provider
一個程式可以通過一個ContentProvider 的抽象介面將自己的資料暴露出去。外界通過這一套標準兒童椅的介面和裡面的程式進行互動資訊。達到讀取,刪除等操作!(當然有相應的許可權的限制)

query(Uri,String[],String,String[],String):
通過查詢關鍵字查詢資料
insert(Uri,ContentValues):
將一組資料插入到指定的地方
update(Uri,ContentValues,String,String[]):
更新資料
delete(Uri,String,String[]):
刪除資料

setContentView(R.layout.main)負責當前的Activity與main.xml相關聯。

LinearLayout layoutMain = new LinearLayout(this);
//為了方便,自己構建一個Layout
layoutMain.setOrientation (LinearLayout.HORIONZONTAL);
//設定加入到這個LinearLayout中元素的布局方向為豎直方向
setContentView(layoutMain);
//將我們構建的layoutMain和此Activity進行關聯。

LayoutInflater inflate = (LayoutInflater)getSystem.Service(Context.LAYOUT_INFLATER_SERVICE)
//得到一個LayoutInflater 對象。這個對象可以對XML的布局檔案進行解析,並且產生一個View。

RelativeLayout layoutLeft = (RelativeLayout)inflate.inflate(R.layout.left,null);
//調用inflate方法將left.xml進行解析,並產生一個RelativeLayout布局。

RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
//產生一個RelativeLayout適用的LayoutParams。

layoutMain.addView(layoutLeft,100,100)
//將layout添加到layoutMain當中,其中第一個參數是添加進去的View,第二個參數是這個View的高度,第三個是寬度。

layoutMain.addView(layoutRight,relParam)
//將layoutRight 添加到layoutMain當中,第二個參數就是RelativeLayout.LayoutParams

LayoutInflater

這個類用來將xml的布局檔案變成一個View的類。出於效能上的考慮,從xml的布局檔案產生一個View類這個過程是在應用的構建階段完成的,而不是在應用運行階段進行的。典型的使用過程是在Activity的oncreate方法裡變,代碼如下:
LayoutINflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.ex01_05,null);
LayoutInflater 類通過getSystemService 方法來獲得,而不能直接執行個體化。這個類負責將一個xml的布局檔案執行個體化,從而在代碼中可以應用到xml定義的組件。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android學習筆記NO.5

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.