Mono for Android学习笔记四 Android程序界面的布局.docx
- 文档编号:28226811
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:31
- 大小:270.94KB
Mono for Android学习笔记四 Android程序界面的布局.docx
《Mono for Android学习笔记四 Android程序界面的布局.docx》由会员分享,可在线阅读,更多相关《Mono for Android学习笔记四 Android程序界面的布局.docx(31页珍藏版)》请在冰豆网上搜索。
MonoforAndroid学习笔记四Android程序界面的布局
上一篇文章中,我们已经简要分析了一个MonoDroid工程的基本结构,这次我们来讨论更多。
每一种应用程序基本都会有用户界面(UI),在.Net里,winform程序的UI是一个form窗体,wpf或silverlight程序的UI是一个xaml,页面是一个aspx,那么在MonoDroid里,就是一个Activity。
上面说的.net里的程序都可以既使用可视化界面进行拖拽,也可以在源代码中进行编辑,但MonoDroid中,只能对xml文件或axml文件进行编辑或者在Activity类中使用c#代码进行动态加载。
那么如何对程序的界面进行布局呢?
我们这篇文章就来进行探讨。
打开Main.xml,可以看到Button是被嵌套在LiearLayout里的,这个LiearLayout直接翻译过来就是线性布局,它是MonoDroid中布局的一种,MonoDroid的支持多种布局方式:
有LinearLayout(线性布局),RelativeLayout(相对位置布局),TableLayout(表格布局),GridView(网格视图),TabLayout(标签页布局),ListView(列表视图)等等,如下图所示,详细的布局可以参考Android.Widget命名空间下以Layout结尾的类都有哪些。
线性布局相对布局表格布局
网格视图标签页布局列表视图
下面我们来试试写一个例子,把几个布局都用上。
设计这样一个界面:
有四个标签页,第一个标签页内有线性布局和相对布局;第二个标签页内有表格布局,第三个标签页内有网格视图,第四个标签页内有列表视图。
首先我们要先设计标签页界面。
需要使用TabHost和TabWidget。
TabHost必须是布局的根节点,它包括用来显示标签页的TabWdiget和显示标签内容的FrameLayout。
在Main.axml中添加如下代码:
+expandsource?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
xmlversion="1.0"encoding="utf-8"?
>
android=" android: id="@android: id/tabhost" android: layout_width="fill_parent" android: layout_height="fill_parent"> android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent" android: padding="5dp"> android: id="@android: id/tabs" android: layout_width="fill_parent" android: layout_height="wrap_content"/> android: id="@android: id/tabcontent" android: layout_width="fill_parent" android: layout_height="fill_parent" android: padding="5dp"/> 在Resources/Layout文件夹下增加Tab1~Tab4共四个axml布局文件,分别表示四个标签页的内容: +expandsource? 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 xmlversion="1.0"encoding="utf-8"? > android=" android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent"> android: orientation="horizontal" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"> android: text="红" android: gravity="center_horizontal" android: background="#aa0000" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="绿" android: gravity="center_horizontal" android: background="#00aa00" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="蓝" android: gravity="center_horizontal" android: background="#0000aa" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="黄" android: gravity="center_horizontal" android: background="#aaaa00" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1"/> android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"> android: text="第一行" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="第二行" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="第三行" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"/> android: text="第四行" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1"/> android: layout_width="fill_parent" android: layout_height="wrap_content"> android: id="@+id/label" android: layout_width="wrap_content" android: layout_height="wrap_content" android: text="账号: "/> android: id="@+id/entry" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_below="@id/label"/> android: id="@+id/label2" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_below="@id/entry" android: text="密码: "/> android: id="@+id/entry2" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_below="@id/label2" android: password="true"/> +expandsource? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 xmlversion="1.0"encoding="utf-8"? > android=" android: layout_width="fill_parent" android: layout_height="fill_parent" android: stretchColumns="1"> android: layout_column="1" android: text="打开..." android: padding="3dip"/> android: text="Ctrl-O" android: gravity="right" android: padding="3dip"/> android: layout_column="1" android: text="保存..." android: padding="3dip"/> android: text="Ctrl-S" android: gravity="right" android: padding="3dip"/> android: layout_column="1" android: text="另存为..." android: padding="3dip"/> android: text="Ctrl-Shift-S" android: gravity="right" android: padding="3dip"/> android: layout_height="2dip" android: background="#FF909090"/> android: text="X" android: padding="3dip"/> android: text="导入..." android: padding="3dip"/> android: text="X" android: padding="3dip"/> android: text="导出..." android: padding="3dip"/> android: text="Ctrl-E" android: gravity="right" android: padding="3dip"/> android: layout_height="2dip" android: background="#FF909090"/> android: layout_column="1" android: text="退出" android: padding="3dip"/> +expandsource? 01 02 03 04 05 06 07 08 09 10 11 12 xmlversion="1.0"encoding="utf-8"? > android=" android: id="@+id/gridview" android: layout_width="fill_parent" android: layout_height="fill_parent" android: columnWidth="90dp" android: numColumns="auto_fit" android: verticalSpacing="10dp" android: horizontalSpacing="10dp" android: stretchMode="columnWidth" android: gravity="center" /> +expandsource? 1 2 3 4 5 6 7 8 xmlversion="1.0"encoding="utf-8"? > android=" android: layout_width="fill_parent" android: layout_height="fill_parent" android: padding="10dp" android: textSize="16sp"> 新建一个Tabs文件夹,在文件夹中增加四个Activity,分别表示四个标签页的后台类: +expandsource? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingAndroid.App; usingAndroid.Content; usingAndroid.OS; usingAndroid.Runtime; usingAndroid.Views; usingAndroid.Widget; namespaceMonoDroidTest.Tabs { [Activity(Label="MyActivity")] publicclassTab1: Activity { protectedoverridevoidOnCreate(Bundlebundle) { base.OnCreate(bundle); //Createyourapplicationhere SetContentView(Resource.Layout.Tab1); ButtonbtnOK=FindViewById btnOK.Click+=(sender,e)=> { EditTextentry=FindViewById EditTextentry2=FindViewById AlertDialog.Builderdlg=newAlertDialog.Builder(this); dlg.SetTitle("提示"); dlg.SetMessage(string.Format("你输入的账号是: {0},密码是: {1}",entry.Text,entry2.Text)); dlg.SetPositiveButton("确定",delegate{}); dlg.Show(); }; } } } +expandsource? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingAndroid.App; usingAndroid.Content; usingAndroid.OS; usingAndroid.Runtime; usingAndroid.Views; usingAndroid.Widget; namespaceMonoDroidTest.Tabs { [Activity(Label="MyActivity")] publicclassTab2: Activity { protectedoverridevoidOnCreate(Bundlebundle) { base.OnCreate(bundle); //Createyourapplicationhere SetContentView(Resource.Layout.Tab2); } } } +expandsource? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mono for Android学习笔记四 Android程序界面的布局 Android 学习 笔记 程序 界面 布局