android关于界面布局

一个Activity对应一个main.xml里的一个布局,如果我写多个Activity,那界面布局该怎么写?是需要再建立别的xml文件么?怎么对应上?... 一个Activity对应一个main.xml里的一个布局,如果我写多个Activity,那界面布局该怎么写?是需要再建立别的xml文件么?怎么对应上? 展开
 我来答
好程序员
2015-12-22 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
在android中我们常用的布局方式有这么几种:LinearLayout (线性布局),RelativeLayout (相对布局),TableLayout (表格布局),AbsoluteLayout (绝对布局),FrameLayout (帧布局)。

LinearLayout 和 RelativeLayout 应该又是其中用的较多的两种。AbsoluteLayout 比较少用(我自己还没用过),因为它是按屏幕的绝对位置来布局的如果屏幕大小发生改变的话控件的位置也发生了改变。这个就相当于HTML中的绝对布局一 样,一般不推荐使用。

LinearLayout 顾名思义就是一条条的将控件布置下去,线性布局分为水平线性和垂直线性二者的属性分别为
android:orientation="horizontal" android:orientation="vertical" 。xmlns:android="http://schemas.android.com/apk/res/android" 很多人对这个感到困惑,其实它就是一个命名空间。

RelativeLayout 相对布局。里面的每个控件之间的关系都是相对的。如果不设置相对关系的话默认摆放在屏幕左上角。重要属性如下:
android:layout_toRightOf="@id/city" :与id为city的控件的右边对齐。
android:layout_alignTop="@id/city" : 与id为city的控件的顶部对齐。
给出示意图如下所示:
android:layout_width="fill_parent" android:layout_height="wrap_content" 我一般在线性布局里面套相对布局,这时候需要注意上面两个属性相对布局的宽度可以设置为填充父控件,但是高度一般不要设置为填充父控件因为这样的话我想在相对布局外面在放控件就没有效果了因为屏幕已经被相对布局全部占据。
不管是用什么布局,宽度与高度这两个属性一定要弄清楚刚开始的时候我经常会发现有些控件没显示在界面上或者占据了整个屏幕,一检查原来是这里设置错了。还有不要忘记这两个属性在一般控件中都是不可或缺的,忘记设置的话就会报错。

TableLayout 这个表格布局不像HTML中的表格那样灵活,只能通过 TableRow 属性来控制它的行而列的话里面有几个控件就是几列(一般情况)。如下代码:
<TableLayout>
<TableRow>
<EditText></EditText>
<EditText></EditText>
</TableRow>
<TableRow>
<EditText></EditText>
<EditText></EditText>
</TableRow>
</TableLayout>
表示两行两列的一个表格。
android:gravity="center" 书面解释是权重比。其时就是让它居中显示。
它还可以动态添加里面的每行每列。如下代码所示:

/*根据id查找表格对象*/
TableLayout tableLayout = (TableLayout) findViewById(R.id.table01);
/*创建列对象*/
TableRow tableRow = new TableRow(this);
/*文本框对象*/
TextView temp = new TextView(this);
temp.setText("text的值");
/*将此文本添加到列中*/
tableRow.addView(temp);
android:stretchColumns="1,2,3,4" 它的意思就是自动拉伸1,2,3,4列。

FrameLayout 帧布局。在它里面的控件都是按后面的一个控件叠加在前一个控件上来显示的。如:
<FrameLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="1">
<ImageView android:id="@+id/iv1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:visibility="invisible"
android:src="@drawable/lotusleaf"></ImageView>
<ImageView android:id="@+id/f1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/frog_right"
android:visibility="invisible"></ImageView>
</FrameLayout>
表示的是id为f1的控件叠加在id为iv1的控件上面显示。之前做的青蛙过河的游戏的界面布局“青蛙站在荷叶上”这样一个效果就是通过这个布局实现的。
厚芮悦aE
2011-12-09 · TA获得超过152个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:159万
展开全部
所谓对应xml布局 是指静态布局。
你愿意你也可以不用xml布局, 直接View v=new View(this) 然后 setContentView(v);
当然这个view可以是 LinearLayout 可以是FrameLayout 等等View的子类都可以;
这是动态布局。

Acitivity 和main.xml没有必然的联系 布局你愿意怎么样写都行 只要是个布局就行。
用setContentView()对应上。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liviahao
2011-12-09 · 超过23用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:43.8万
展开全部
第一、 一个activity对应一个main.xml里的一个布局,这个是一个错误的说话,activity是一个可提供view展示、操作的平台,也就是说,一个activity下面有一个rootview,这个rootview只能是一个布局,至于这个布局下面,其实你可以放很多小布局进去的,比如:lineralayout 下面还可以放入lineralayout的。也就是说他不一定需要对应着main.xml,也可以是其他的布局名,这个随你的爱好取了。
第二、如果你写多个activity,你想将你想要的布局放入进去就可以了,那么布局是怎么来的呢,你可以自己用代码实现,new 一些layout出来加到activity,也可以自己在layout这个文件夹下面新建layout的xml文件,然后添加进去。
第三、建议你去找一本android基础书籍看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a9f6aa2
2011-12-09 · 超过20用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:49.5万
展开全部
可以建别的xml 也可以用main.xml 主要是看你Activity里的setContentView();用的是哪个xml
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吼失良遇听行g
2011-12-09
知道答主
回答量:36
采纳率:0%
帮助的人:18.1万
展开全部
在相应的Activity里调用setActivityView("xml文件名")方法即可建立两者的关联。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式