android讀書筆記參考
Android五大布局對象FrameLayout,LinearLayout,AbsoluteLayout,RelativeLayout,TableLayout。
它們分別是FrameLayout(框架布局:不知道是不是這么翻譯的),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局).
FrameLayout:
FrameLayout是最簡單的一個布局對象。它被定制為你屏幕上的一個空白備用區(qū)域,之后你可以在其中填充一個單一對象 — 比如,一張你要發(fā)布的圖片。所有的子元素將會固定在屏幕的左上角;你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前一個子元素之上進(jìn)行覆蓋填充,把它們部份或全部擋。ǔ呛笠粋子元素是透明的)。
LinearLayout:
LinearLayout以你為它設(shè)置的垂直或水平的屬性值,來排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一個垂直列表的每一行只會有一個元素,而不管他們有多寬,而一個水平列表將會只有一個行高(高度為最高子元素的高度加上邊框高度)。LinearLayout保持子元素之間的間隔以及互相對齊(相對一個元素的右對齊、中間對齊或者左對齊)。 LinearLayout還支持為單獨(dú)的子元素指定weight 。好處就是允許子元素可以填充屏幕上的剩余空間。這也避免了在一個大屏幕中,一串小對象擠成一堆的情況,而是允許他們放大填充空白。子元素指定一個weight 值,剩余的空間就會按這些子元素指定的weight 比例分配給這些子元素。默認(rèn)的 weight 值為0。例如,如果有三個文本框,其中兩個指定了weight 值為1,那么,這兩個文本框?qū)⒌缺壤胤糯,并填滿剩余的空間,而第三個文本框不會放大。
AbsoluteLayout:
AbsoluteLayout 可以讓子元素指定準(zhǔn)確的x/y坐標(biāo)值,并顯示在屏幕上。(0, 0)為左上角,當(dāng)向下或向右移動時,坐標(biāo)值將變大。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。我們通常不推薦使用 AbsoluteLayout ,除非你有正當(dāng)理由要使用它,因?yàn)樗菇缑娲a太過剛性,以至于在不同的設(shè)備上可能不能很好地工作。
RelativeLayout:
RelativeLayout 允許子元素指定他們相對于其它元素或父元素的位置(通過ID 指定)。因此,你可以以右對齊,或上下,或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其它元素將以屏幕中央的相對位置來排列。如果使用XML 來指定這個 layout ,在你定義它之前,被關(guān)聯(lián)的元素必須定義。
TableLayout:
TableLayout 將子元素的位置分配到行或列中。一個TableLayout 由許多的TableRow 組成,每個TableRow 都會定義一個 row (事實(shí)上,你可以定義其它的子對象,這在下面會解釋到)。TableLayout 容器不會顯示row 、cloumns 或cell 的邊框線。每個 row 擁有0個或多個的cell ;每個cell 擁有一個View 對象。表格由列和行組成許多的單元格。表格允許單元格為空。單元格不能跨列,這與HTML 中的不一樣。
2關(guān)于創(chuàng)建對象,重載某個函數(shù)
OnClickListener listener1 = new OnClickListener()
{
public void onClick(View v) { Intent intent1 = new Intent(ActivityMain.this, startActivity(intent1); ActivityRelativeLayout.class);
};
一定注意分號,因?yàn)槭莝entence,后面要加分號
3關(guān)于android 的widget
分為兩種一種是包括按鈕,列表框,進(jìn)度條,圖片顯示等控件,另一種則是運(yùn)行于桌面的小程序,需要繼承extends AppWidgetProvider,其它繼承Activity
4 android的切換相當(dāng)于windows窗口切換
Intent intent = new Intent();
intent.setClass(MainActivity.this, ViewTextActivity.class);
startActivity(intent);
是壓棧方式
通過Bundle可以active傳遞數(shù)據(jù)
View是所有控件的基類 就是界面
R.layout.main解析出來也是創(chuàng)建界面控件 Activity和service都是繼承context
Activity是處理界面進(jìn)程 service是處理邏輯進(jìn)程 service有兩種啟動模式startService stopService和bindService unbindService startService就是調(diào)用service的activity退出 service也會退出 bindService相反 不退出 就像音頻后臺播放。
Intent intent = new Intent(Sample_2_6.this,MyService.class);
Intent i=new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+strTel)); Sample_2_7.this.startActivity(i);
Intent intent;
intent.setClass(MainActivity.this, ViewTextActivity.class);
startActivity(intent)
一定要在AndroidManifest中加入標(biāo)簽activity 否則出錯 切忌 三種寫法
Intent是意圖 目的意思從一個activitiy到另一個activitiy 或者service
5 JAVA中abstract,interface,final,static語法 一,抽象類:abstract
1,只要有一個或一個以上抽象方法的類,必須用abstract聲明為抽象類;
2,抽象類中可以有具體的實(shí)現(xiàn)方法;
3,抽象類中可以沒有抽象方法;
4,抽象類中的抽象方法必須被它的子類實(shí)現(xiàn),如果子類沒有實(shí)現(xiàn),則該子類繼續(xù)為抽象類 5,抽象類不能被實(shí)例化,但可以由抽象父類指向的子類實(shí)例來調(diào)用抽象父類中的具體實(shí)現(xiàn)方法;通常作為一種默認(rèn)行為;
6,要使用抽象類中的方法,必須有一個子類繼承于這個抽象類,并實(shí)現(xiàn)抽象類中的抽象方法,通過子類的實(shí)例去調(diào)用;
二,接口:interface
1,接口中可以有成員變量,且接口中的成員變量必須定義初始化;
2,接口中的成員方法只能是方法原型,不能有方法主體;
3,接口的成員變量和成員方法只能public(或缺省不寫),效果一樣,都是public
4,實(shí)現(xiàn)接口的類必須全部實(shí)現(xiàn)接口中的方法(父類的實(shí)現(xiàn)也算,一般有通過基類實(shí)現(xiàn)接口中個異性不大的方法來做為適配器的.做法)
三,關(guān)鍵字:final
1,可用于修飾:成員變量,非抽象類(不能與abstract同時出現(xiàn)),非抽象的成員方法,以及方法參數(shù)
2,final方法:不能被子類的方法重寫,但可以被繼承;
3,final類:表示該類不能被繼承,沒有子類;final類中的方法也無法被繼承.
4,final變量:表示常量,只能賦值一次,賦值后不能被修改.final變量必須定義初始化; 5,final不能用于修飾構(gòu)造方法;
6,final參數(shù):只能使用該參數(shù),不能修改該參數(shù)的值;
四,關(guān)鍵字:static
1,可以修飾成員變量和成員方法,但不能修飾類以及構(gòu)造方法;
2,被static修飾的成員變量和成員方法獨(dú)立于該類的任何對象。也就是說,它不依賴類特定的實(shí)例,被類的所有實(shí)例共享
3,static變量和static方法一般是通過類名直接訪問,但也可以通過類的實(shí)例來訪問(不推薦這種訪問方式)
4,static變量和static方法同樣適應(yīng)java訪問修飾符.用public修飾的static變量和static方法,在任何地方都可以通過類名直接來訪問,但用private修飾的static變量和static方法,只能在聲明的本類方法及靜態(tài)塊中訪問,但不能用this訪問,因?yàn)閠his屬于非靜態(tài)變量. 五,static和final同時使用
1,static final用來修飾成員變量和成員方法,可簡單理解為“全局常量”!
2,對于變量,表示一旦給值就不可修改,并且通過類名可以訪問。
3,對于方法,表示不可覆蓋,并且可以通過類名直接訪問。
extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口來實(shí)現(xiàn),這樣就要用到implements,繼承只能繼承一個類,但implements可以實(shí)現(xiàn)多個接口,用逗號分開就行了
比如
class A extends B implements C,D,E
Abstract 抽象的
一個Java語言中的關(guān)鍵字,用在類的聲明中來指明一個類是不能被實(shí)例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實(shí)現(xiàn),但是需要在子類中被實(shí)現(xiàn)
final
一個Java語言的關(guān)鍵字。你只能定義一個實(shí)體一次,以后不能改變它或繼承它。更嚴(yán)格的講:一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變量不能改變其初始值。
finally
一個Java語言的關(guān)鍵字,用來執(zhí)行一段代碼不管在前面定義的try語句中是否有異;蜻\(yùn)行時錯誤發(fā)生。
implements
Java(TM)編程語言的一個關(guān)鍵字,在類的聲明中是可選的,用來指明當(dāng)前類實(shí)現(xiàn)的接口。
6 Toast 和Notification
Notification通過服務(wù)來提示信息,可以文本,聲音,振動文本顯示在最上面
Toast相當(dāng)于messagebox消失有漸變
7 關(guān)于Activity和Intent
Activity常用的函數(shù)有SetContentView(),findViewById(),finish(),startActivity()
生命周期涉及的函數(shù)
OnCreate(BundlesaveInteanceState),OnStart(),OnRestart(),OnResume(),OnPause(),OnStop(), OnDestory()..
8 listview關(guān)于
getListView().setTextFilterEnabled(true);保證列表可以輸入過濾列表 9 關(guān)于TableLayout和TableRow
TableLayout和我們平時在網(wǎng)頁上見到的Table有所不同,TableLayout沒有邊框的,它是由多個TableRow對象組成,每個TableRow可以有0個或多個單元格,每個單元格就是一個View。這些TableRow,單元格不能設(shè)置layout_width,寬度默認(rèn)是fill_parent的,只有高度layout_height可以自定義,默認(rèn)是wrap_content。
【android讀書筆記參考】相關(guān)文章:
讀書筆記參考07-06
Android手機(jī)的通病10-07
Android與ios的對比10-07
窮人讀書筆記參考08-05
《高興》讀書筆記參考06-30
紅與黑讀書筆記參考07-15
初中讀書筆記參考04-02
景觀讀書筆記參考07-06
護(hù)理讀書筆記參考07-06