Android控件大全以及各布局空間的使用方式_第1頁
Android控件大全以及各布局空間的使用方式_第2頁
Android控件大全以及各布局空間的使用方式_第3頁
Android控件大全以及各布局空間的使用方式_第4頁
Android控件大全以及各布局空間的使用方式_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Android控件大全以及各布局空間的使用方式控件講解? 在Windows 下搭建Android 開發(fā)環(huán)境? Android 項目的目錄結構說明? 寫一個簡單的Hello World 程序一、在Windows 下搭建Android 開發(fā)環(huán)境1、安裝JDK (Java Development Kit)/doc/98c23c3a31126edb6f1a10d7.html/jdk6/2、安裝Android SDK/doc/98c23c3a31126edb6f1a10d7.html/sdk3、安裝Eclipse

2、/doc/98c23c3a31126edb6f1a10d7.html/4、打開Eclipse ,并安裝其Android 插件(ADT)打開菜單Help - Install New Software,在Availabe Software 中加入地址/doc/98c23c3a31126edb6f1a10d7.html/android/eclipse/ ,然后安裝ADT(Android Development Tools)5、新建Android 項目New - Android Project,Project

3、Name - 項目名稱;Build Target - 編譯項目的SDK 版本;Application name - 程序名稱;Package name - 包名;Min SDK Version - 程序所支持的最低SDK 版本代號(2 對應1.1,3 對應1.5,4 對應1.6)6、運行Android 項目打開菜單Run - Run Configurations - New launch configuration,設置啟動項目名稱,在Android 選項卡中選擇啟動項目,在Target 選項卡中設置模擬器7、創(chuàng)建/使用模擬SD 卡創(chuàng)建SD 卡,運行類似如下命令:mksdcard -l sdc

4、ard 512M d:androidsdcard.img模擬器中使用SD 卡,在項目配置的Target 選項卡的Additional Emulator Command Line Options 框中輸入類似如下參數(shù):-sdcard d:androidsdcard.img8、配置模擬器運行類似如下命令:android create avd -name android15 -target 2?;蛘咧苯釉诓藛蜽indow - Android AVD Manager 中配置模擬器9、瀏覽模擬SD 卡中的內容調試程序,在DDMS 中選擇File Explorer ,在其中的sdcard 目錄下就是模擬S

5、D 卡中的內容10、查看日志LogCatWindow - Show View - Other - Android - LogCat11、在模擬器中安裝/卸載apk安裝apk 運行類似如下命令:adb install name.apk;卸載apk 運行類似如下命令:adb uninstall packagename(注:這里的參數(shù)是需要卸載的包名)12、反編譯Android 程序解壓apk 文件,取出其中的classes.dex 文件,運行類似如下命令:dexdump.exe -d classes.dex dump.txt(其意思是將classes.dex dump 出來,并將反編譯后的代碼保存

6、到指定的文本文件中)13、人品不好是出現(xiàn)的某些錯誤的解決辦法如果出現(xiàn)類似如下的錯誤等no classfiles specifiedConversion to Dalvik format failed with error 1解決辦法:Project - Clean出現(xiàn)Android SDK Content Loader 60% (一直卡在60%)解決辦法:Project - 去掉Build Automatically 前面的勾14、查看SDK 源代碼先想辦法搞到源代碼,如這個地址/doc/98c23c3a31126edb6f1a10d7.html/

7、android.asp ,然后將其解壓到SDK 根路徑下的sources 文件夾內即可二、Android 項目的目錄結構1、src - 用于放置源程序2、gen - 自動生成R.java 文件,用于引用資源文件(即res 目錄下的數(shù)據(jù))3、assets - 用于放置原始文件,Android 不會對此目錄下的文件做任何處理,這是其與res 目錄不同的地方4、res/drawable - 用于放置圖片之類的資源;res/layout - 用于放置布局用的xml 文件;res/values - 用于放置一些常量數(shù)據(jù)5、AndroidManifest.xml - Android 程序的清單文件,相當于

8、配置文件,配置應用程序名稱、圖標、Activity、Service、Receiver等三、Hello World 程序1、res/layout/main.xml代碼設置ID 的方式:ID前加前綴,+id/引用資源文件內字符串資源的方式:指定的資源名稱前加前綴,string/-android:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:id=+id/layoutandroid:layout_width=fill_parentandroid:layout_h

9、eight=wrap_contentandroid:text=string/hello/android:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:id=+id/txt/2、res/values/strings.xml代碼3、res/drawable 目錄下放置一個名為icon.png 的圖片文件4、AndroidManifest.xml代碼package=com.webabcd.helloandroid:versionCode=1android:versionName=1.0 android:label=

10、string/app_name 5、Main.java代碼package com.webabcd.hello;import android.app.Activity;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.TextView;public class Main extends Activity /* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedIn

11、stanceState) super.onCreate(savedInstanceState);/ 將指定的布局文件作為Activity 所顯示的內容setContentView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.main);/ 動態(tài)地在指定的容器控件上添加新的控件TextView txt = new TextView(this);txt.setText(動態(tài)添加控件);/ setContentView(txt);(LinearLayout)this.findViewById(http:/www.wend

12、/doc/98c23c3a31126edb6f1a10d7.htmlyout).addView(txt);/ 引用資源文件內的內容作為輸出內容TextView txt1 = (TextView)this.findViewById(R.id.txt);txt1.setText(this.getString(R.string.hello2);四、系出名門Android(2) - 布局(Layout)和菜單(Menu)介紹在Android 中各種布局的應用,以及菜單效果的實現(xiàn)? 各種布局方式的應用,F(xiàn)rameLayout, LinearLayout, TableLayout, Ab

13、soluteLayout, RelativeLayout? 為指定元素配置上下文菜單,為應用程序配置選項菜單,以及多級菜單的實現(xiàn)1、各種布局方式的演示(FrameLayout, LinearLayout, TableLayout,AbsoluteLayout, RelativeLayout)res/layout/main.xml代碼LinearLayout - 線形布局。orientation - 容器內元素的排列方式。vertical: 子元素們垂直排列;horizontal: 子元素們水平排列gravity - 內容的排列形式。常用的有top, bottom, left, right, c

14、enter 等,詳見文檔-android:orientation=vertical android:gravity=rightandroid:layout_width=fill_parent android:layout_height=fill_parentFrameLayout - 層疊式布局。以左上角為起點,將FrameLayout 內的元素一層覆蓋一層地顯示-android:layout_width=fill_parentandroid:layout_height=wrap_content android:text=FrameLayout android:layout_height=wr

15、ap_content android:text=Frame Layout android:layout_height=wrap_content android:text=string/hello /TableLayout - 表格式布局。TableRow - 表格內的行,行內每一個元素算作一列collapseColumns - 設置TableLayout 內的TableRow 中需要隱藏的列的列索引,多個用“,”隔開stretchColumns - 設置TableLayout 內的TableRow 中需要拉伸(該列會拉伸到所有可用空間)的列的列索引,多個用“,”隔開shrinkColumns

16、- 設置TableLayout 內的TableRow 中需要收縮(為了使其他列不會被擠到屏幕外,此列會自動收縮)的列的列索引,多個用“,”隔開-android:layout_width=fill_parent android:layout_height=wrap_contentandroid:collapseColumns=1android:layout_height=wrap_contentandroid:layout_weight=1 android:layout_height=wrap_contentandroid:text=行1列1 /android:layout_weight=1 a

17、ndroid:layout_height=wrap_contentandroid:text=行1列2 /android:layout_weight=1 android:layout_height=wrap_contentandroid:text=行1列3 /android:layout_height=wrap_contentandroid:layout_height=wrap_content android:text=行2列1 / AbsoluteLayout - 絕對定位布局。layout_x - x 坐標。以左上角為頂點layout_y - y 坐標。以左上角為頂點-android:lay

18、out_width=fill_parentandroid:layout_height=wrap_content android:text=AbsoluteLayoutandroid:layout_x=100pxandroid:layout_y=100px /RelativeLayout - 相對定位布局。layout_centerInParent - 將當前元素放置到其容器內的水平方向和垂直方向的中央位置(類似的屬性有:layout_centerHorizontal, layout_alignParentLeft 等)layout_marginLeft - 設置當前元素相對于其容器的左側邊緣的

19、距離layout_below - 放置當前元素到指定的元素的下面layout_alignRight - 當前元素與指定的元素右對齊-android:layout_width=fill_parent android:layout_height=fill_parentandroid:layout_height=wrap_content android:text=marginLeft=20pxandroid:layout_marginLeft=20px /android:layout_height=wrap_content android:text=xxxandroid:layout_below=i

20、d/abc android:layout_alignRight=id/abc / res/values/strings.xmlMain.java代碼package /doc/98c23c3a31126edb6f1a10d7.htmlyout;import android.app.Activity;import android.os.Bundle;public class Main extends Activity /* Called when the activity is first created. */Overridepublic void

21、onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.main);2、上下文菜單,選項菜單,子菜單res/layout/main.xml代碼android:orientation=vertical android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_

22、height=wrap_content android:text=string/hello_contextMenu /android:layout_height=wrap_content android:text=string/hello_subMenu /res/values/strings.xml代碼Main.java代碼package com.webabcd.menu;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.Menu;i

23、mport android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.TextView;import android.widget.Toast;/ 演示兩種菜單的實現(xiàn)方式:上下文菜單(通過在某元素上長按,來呼出菜單)和選項菜單(通過按手機上的菜單按鈕,來呼出菜單)public class Main extends Activity /* Called when th

24、e activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.main);/ 為R.id.txt1 注冊一個上下文菜單(在此TextView 上長按,則會呼出上下文菜單)/ 具體呼出的菜單內容需要重寫onCreateContextMenu 來創(chuàng)建TextView

25、txt1 = (TextView) this.findViewById(R.id.txt1);this.registerForContextMenu(txt1);/ 為R.id.txt2 注冊一個上下文菜單TextView txt2 = (TextView) this.findViewById(R.id.txt2);this.registerForContextMenu(txt2);/ 重寫onCreateContextMenu 用以創(chuàng)建上下文菜單/ 重寫onContextItemSelected 用以響應上下文菜單Overridepublic void onCreateContextMenu

26、(ContextMenu menu, View v,ContextMenuInfo menuInfo) super.onCreateContextMenu(menu, v, menuInfo);/ 創(chuàng)建R.id.txt1 的上下文菜單if (v = (TextView) this.findViewById(R.id.txt1) / ContextMenu.setIcon() - 設置菜單的圖標/ ContextMenu.setHeaderTitle() - 設置菜單的標題menu.setHeaderIcon(R.drawable.icon01);menu.setHeaderTitle(我是菜單

27、);/ 用ContextMenu.add() 來增加菜單項,返回值為MenuItem/ 第一個參數(shù):組ID/ 第二個參數(shù):菜單項ID/ 第三個參數(shù):順序號/ 第四個參數(shù):菜單項上顯示的內容menu.add(1, 0, 0, 菜單1);/ MenuItem - 新增菜單項后的返回類型,針對菜單項的其他設置在此對象上操作menu.add(1, 1, 1, 菜單2).setCheckable(true);/ 創(chuàng)建R.id.txt2 的上下文菜單(多級上下文菜單)else if (v = (TextView) this.findViewById(R.id.txt2) / ContextMenu.add

28、SubMenu(菜單名稱) - 用來添加子菜單。子菜單其實就是一個特殊的菜單SubMenu sub = menu.addSubMenu(父菜單1);sub.setIcon(R.drawable.icon01);sub.add(0, 0, 0, 菜單1);sub.add(0, 1, 1, 菜單2);sub.setGroupCheckable(1, true, true);SubMenu sub2 = menu.addSubMenu(父菜單2);sub2.setIcon(R.drawable.icon01);sub2.add(1, 0, 0, 菜單3);sub2.add(1, 1, 1, 菜單4)

29、;sub2.setGroupCheckable(1, true, false);/ 重寫onCreateOptionsMenu 用以創(chuàng)建選項菜單Overridepublic boolean onCreateOptionsMenu(Menu menu) MenuItem menuItem = menu.add(0, 0, 0, 菜單111111111111111111111);/ MenuItem.setIcon() - 設置菜單項的圖標/ MenuItem.setTitleCondensed() - 菜單的簡標題,如果指定了簡標題的話,菜單項上的標題將會以此簡標題為準/ MenuItem.se

30、tAlphabeticShortcut() - 設置選中此菜單項的快捷鍵/ 注:菜單項超過6 個的話,第6 個菜單將會變?yōu)镸ore 菜單,多余的菜單會在單擊More 菜單之后顯示出來menuItem.setIcon(R.drawable.icon01);menuItem.setTitleCondensed(菜單1);menuItem.setAlphabeticShortcut(a);menu.add(0, 1, 1, 菜單2).setIcon(R.drawable.icon02);menu.add(0, 2, 2, 菜單3).setIcon(R.drawable.icon03);menu.ad

31、d(0, 3, 3, 菜單4);menu.add(0, 4, 4, 菜單5);menu.add(0, 5, 5, 菜單6);menu.add(0, 6, 6, 菜單7).setIcon(R.drawable.icon04);menu.add(0, 7, 7, 菜單8).setIcon(R.drawable.icon05);return true;/ 重寫onOptionsItemSelected 用以響應選項菜單Overridepublic boolean onOptionsItemSelected(MenuItem item) super.onOptionsItemSelected(item

32、);Toast.makeText(Main.this, 被單擊的菜單項為: + String.valueOf(item.getItemId(), Toast.LENGTH_SHORT).show();return false;對話框(Dialog)和通知(Notification)作者:webabcd介紹在Android 中種對話框及各種通知效果的應用? 常用對話框的使用,彈出式對話框、日期選擇對話框、時間選擇對話框、進度條對話框? 通知(出現(xiàn)在通知列表)和提示性通知(Toast)的演示3、常用對話框的演示res/layout/main.xml代碼android:orientation=ver

33、tical android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentres/layout/view.xml代碼andr

34、oid:orientation=vertical android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_width=wrap_content android:layout_height=wrap_content res/values/array.xml定義一個名為ary 的string 類型的數(shù)組-Main.java代碼package com.webabcd.dialog;import java.util.Calendar;import android.app.Activity;impor

35、t android.app.AlertDialog;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.app.TimePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.TimePickerDialog.OnTimeSetListener;import android.content.DialogInter

36、face;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.View;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;import android.widget.Button;public class Main extends Activity /* Called when the activity i

37、s first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.main);/ 彈出式對話框的Demo。先調用Builder(),在Create(),需要顯示對話框的是后再調用show()AlertDialog dialog = new AlertDialog.Builder(this).

38、setTitle(彈出對話框).create();dialog.show();/ 以下是各種對話框的DemoMyButtonClickListener listener = new MyButtonClickListener();Button btn1 = (Button) this.findViewById(R.id.btn1);btn1.setText(簡單的對話框的Demo);btn1.setOnClickListener(listener);Button btn2 = (Button) this.findViewById(R.id.btn2);btn2.setText(包括常用設置的對

39、話框(數(shù)據(jù)來自xml);btn2.setOnClickListener(listener);Button btn3 = (Button) this.findViewById(R.id.btn3);btn3.setText(彈出的對話框的內容是一個View);btn3.setOnClickListener(listener);Button btn4 = (Button) this.findViewById(R.id.btn4);btn4.setText(日期選擇對話框);btn4.setOnClickListener(listener);Button btn5 = (Button) this.f

40、indViewById(R.id.btn5);btn5.setText(時間選擇對話框);btn5.setOnClickListener(listener);Button btn6 = (Button) this.findViewById(R.id.btn6);btn6.setText(進度條對話框);btn6.setOnClickListener(listener);class MyButtonClickListener implements View.OnClickListener Overridepublic void onClick(View v) / 具體的對話框的實現(xiàn)可以通過重寫o

41、nCreateDialog 完成switch (v.getId() case R.id.btn1:Main.this.showDialog(0);break;case R.id.btn2:Main.this.showDialog(1);break;case R.id.btn3:Main.this.showDialog(2);break;case R.id.btn4:Main.this.showDialog(3);break;case R.id.btn5:Main.this.showDialog(4);break;case R.id.btn6:Main.this.showDialog(5);br

42、eak;Overridepublic Dialog onCreateDialog(int id) switch (id) case 0:/ 一個簡單的彈出對話框return new AlertDialog.Builder(this).setTitle(這是一個簡單的彈出對話框的Demo) .create();case 1:/ 一個相對復雜的彈出對話框return new AlertDialog.Builder(this).setTitle(標題) / 設置標題/ .setCustomTitle(View) / 以一個View 作為標題.setIcon(R.drawable.icon01) /

43、設置標題圖片/ .setMessage(信息) / 需要顯示的彈出內容.setPositiveButton(確定, new OnClickListener() / 設置彈框的確認按鈕所顯示的文本,以及單擊按鈕后的響應行為Overridepublic void onClick(DialogInterface a0, int a1) TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append(單擊了對話框上的“確認”按鈕n);).setItems(R.array.ary, new DialogInte

44、rface.OnClickListener() / 彈框所顯示的內容來自一個數(shù)組。數(shù)組中的數(shù)據(jù)會一行一行地依次排列public void onClick(DialogInterface dialog, int which) )/ 其他常用方法如下/ .setMultiChoiceItems(arg0, arg1, arg2)/ .setSingleChoiceItems(arg0, arg1, arg2)/ .setNeutralButton(arg0, arg1)/ .setNegativeButton(arg0, arg1).create();case 2:/ 彈出對話框為指定的View

45、的Demoreturn new AlertDialog.Builder(this).setTitle(此對話框的內容是一個View).setView(this.findViewById(/doc/98c23c3a31126edb6f1a10d7.htmlyout.view).create();case 3:/ 彈出日期選擇對話框Calendar c = Calendar.getInstance();return new DatePickerDialog(this, new OnDateSetListener() Overridepublic voi

46、d onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append(新設置的日期為: + String.valueOf(year) + -+ String.valueOf(monthOfYear) + -+ String.valueOf(dayOfMonth) + n);, c.get(Calendar.YEAR), c.get(Calendar.MONTH),

47、c.get(Calendar.DATE);case 4:/ 彈出時間選擇對話框Calendar c2 = Calendar.getInstance();return new TimePickerDialog(this, new OnTimeSetListener() Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append(新設置的時間為:+ Str

48、ing.valueOf(hourOfDay) + :+ String.valueOf(minute) + n);, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);case 5:/ 彈出進度條對話框ProgressDialog progress = new ProgressDialog(this);progress.setMessage(loading.);return progress;default:return null;4、各種提示效果的演示res/layout/main.xml代碼android:orientation=ve

49、rtical android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentandroid:layout_height=wrap_contentres/layout/view.xml代碼android:orientation=vertical android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:lay

50、out_height=wrap_contentMain.java代碼package com.webabcd.notification;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.

51、util.Log;import /doc/98c23c3a31126edb6f1a10d7.htmlyoutInflater;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class Main extends Activity /* Called when the activity is first created. */Overridepublic voi

52、d onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.main);/ 通過Tost.makeText().show() 來實現(xiàn)提示性的通知效果/ 短時間的提示性通知的DemoButton btn1 = (Button) this.findViewById(R.id.btn1);btn1.setText(短時間提示);btn1.setOnClickLis

53、tener(new Button.OnClickListener() public void onClick(View v) Toast.makeText(Main.this, 我是短時間提示, Toast.LENGTH_SHORT).show(););/ 長時間的提示性通知的DemoButton btn2 = (Button) this.findViewById(R.id.btn2);btn2.setText(長時間提示);btn2.setOnClickListener(new Button.OnClickListener() public void onClick(View v) Toas

54、t.makeText(Main.this, 我是長時間提示, Toast.LENGTH_LONG).show(););/ 以一個View 作為提示性通知的DemoButton btn3 = (Button) this.findViewById(R.id.btn3);btn3.setText(以一個View 做提示);btn3.setOnClickListener(new Button.OnClickListener() public void onClick(View v) View view = inflateView(/doc/98c23c3a31126edb6f1a10d7.htmlyout.view);TextView txtMsg = (TextView) view.findViewById(R.id.txtMsg);txtMsg.setText(提示內容);Toast toast = new Toast(Main.this);toast.setView(view);toast.setDuration(Toast.LENGTH_LONG);toast.show(););Button btn4 = (Button) this.findViewById(R.id.btn4);btn4.setT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論