⑴ android的界面布局方式有哪些
一、界面布局之线性布局(LinearLayout)
这种布局比较常用,也比较简单,就是每个元素占一行,把它按照横向排放,也就是每个元素占一列。在布局中都按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。
二、界面布局之相对布局(RelativeLayout)
相对布局是android界面设计中比较常用和好用的一个布局方式。
三、界面布局之表格布局(TableLayout)
表格布局采用行、列的形式来管理元素组件。TableLayout的行和列不需要声明,而是采用添加方法控制。
每次在TableLayout中添加一个TableRow,一个TableRow就代表表格中的一行,也同样是容器,往里面添加一个子组件就代表增加一列。在表格布局中,列的宽度由最宽的那个单元格决定,整个表格布局宽度取决于父容器的宽度
四、界面布局之绝对布局(AbsoluteLayout)
特点:以坐标的方式来定位在屏幕上的位置,引起缺乏灵活性,在没有绝对定位的情况下相比其他类型的布局更难维护
五、界面布局之帧布局(FrameLayout)
FrameLayout是五大布局中最简单的一个布局。在帧布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
转自长沙软件公司---小房子
⑵ 什么是帧布局
FrameLayout(帧布局)
前言
作为android六大布局中最为简单的布局之一,该布局直接在屏晌消幕上开辟出了一块空白区域,
当宴伍知我们往里面添加组件的时候,所有的组件都会放置于这块区域的左上角;
帧布局的大小由子控件中最大的子控件决定,
如果都组件都一样大的话,同一时刻就只能能看到最上面的那个组件了!
当然我们也可以为组件添加layout_gravity属性,从而制定组件的对其方式
帧布局在游戏开发方面用的比较多,等下后面会给大家演示一下比较有意思的两个实例
前景图像:
永远处于帧布局最顶的,直接面对用户的图像,,就是不会被覆盖的橘激图片
常用属性:
android:foreground:设置该帧布局容器的前景图像
android:foregroundGravity:设置前景图像显示的位置
⑶ android绝对布局怎么设置组件间的距离
在绝对布局AbsoluteLayout中:
子控件的则州位置可以通过android:layout_x="**px"android:layout_y="**px"消团进行绝对控制。这里的px表示绝对的像素,所以至于组件之间的距离可以进行非常精确的控制。也可以使用dip做单位,这个单位是按照屏幕密度进行计算的。
在相对布局RelativeLayout中:
layout_marginBottom是指控件作为子控件和其他控件或者父控件边界的距离。其中的Bottom可以换成Right,Left等方向。
综上,如果想用绝对布局实现组件距离,使用具体位置控制,但很多时候不见得能达到理想的效果,使用dip对不同设备显示效果不一样。这个时候建议使用相对布局,能很方便的对位置进行控制。如果一定要使用绝对布局,请使用布局嵌套,即一个布局包含多个布局的方式,或者使用帧布局进行布局覆盖显示,比如在一个帧布局中定义一个绝对布局和相对布局,后者覆盖前孙桥蔽者。
⑷ FrameLayout 内的控件如何设置位置
所有的子元素将会固定在屏幕的左上角;不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。
简单来说:FrameLayout中的子元素总是以屏幕的左上角层叠在一起。在FrameLayout布局里面android:layout_margin的各种属性必须依赖于团和android:layout_gravity,也就是说,要想margin生效,必须设定view的辩肆layout_gravity属性。
下面的配置将2个控件显示在屏幕的中间:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 宽
android:layout_height="fill_parent" 高
>
<LinearLayout
android:layout_width="200dip" 宽
android:layout_height="wrap_content" 高
android:orientation="vertical" 垂直
android:gravity="center" 居中
android:layout_gravity="center" 居中
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="塌灶盯wrap_content"
android:src="@drawable/empty3"
/>
<TextView
android:layout_width="fill_parent" 宽
android:layout_height="wrap_content" 高
android:layout_marginTop="10dp"
android:text="暂无记录"
android:textColor="@color/gray_dark"
android:textSize="@dimen/font_middle"
android:gravity="center"
/>
</LinearLayout>
</FrameLayout>
⑸ 11 帧布局——FrameLayout
FrameLayout 应该说是 Android 常用UI布局里面最简单的一种,顾名思义,它的布局方式就是将 View 一帧一帧的叠加到一起,有点类似 Photoshop 里面的图层的概念。在学习 FrameLayout 的过程中,你会发现基于它可以设计出很多有意思的 Android UI。那么接下来,我们来一起一探究竟。
FrameLayout 是 最简单且最高效 的布局形式,不过 FrameLayout 的使用频率相比其他的 Layout 来讲要更少很多,主要是因为很多时候它只是作为一个容器来显示单个 View 或者多个 View 重叠的场景。
用过 Photoshop 的朋友对“图层”的概念应该比较熟悉,我们可以插入很多个图层,后添加的图层会挡住先添加的图层,然后针对每个图层我们可以任意的设置它在整个图片中的位置。同样的,我们可以设置 FrameLayout 内部 View 所处的位置,与 RelativeLayout 相似,可以设置放置在上下左右,同样也可以设置边距。辩渗如果放置了多个 View,那么他们会按照放置的顺序依次叠加扮族,后加入 View 的会挡住前面加入的 View。
在第 1 小节我们提到过,FrameLayout 可以设置内部 View 所在的位置,那么这几个属性和 RelativeLayout 一样,这里不再重复,主要介绍一下 FrameLayout 特有又常用的两个属性: android:foreground 和 android:foregroundGravity 。
android:foreground: 设置 FrameLayout 的前景图像
前景图像会置于 FrameLayout 内部所有 View 的层级之上,直接设置图片的资源 id 即可,如下:
android:foregroundGravity: 设置 FrameLayout 前景图片的摆放位置,设置方式与 RelativeLayout 中的 View 一样,如:
我们的 FrameLayout 需要满足以下要求:
效果如下:
这就是 FrameLayout 的基本用法。
到这里,基本上你已经掌握了 FrameLayout 的用法,可能你会有所疑惑,看起来 FrameLayout 也没有什么特别好的地方,似乎完全可以被 RelativeLayout 替代,所以很多人在开发过程中,往往会忘记还有这么个 Layout。其实越是往后学你越会发现,FrameLayout 的简单不仅仅体现在使用上,更大的优势是在于其性能。当你的屏幕上控件不太多时,比如 Android 的桌面 Widget,或者 Home 应用,大多都是直接采用 FrameLayout 完成的布局。
事实上,还有一处是 FrameLayout 用携缺脊的最多的地方,也是一个非常隐蔽的地方。如果我们打开 Hierarchy Viewer 或者类似的 View 分析工具,我们可以看到Android的每一个页面都是在一个 FrameLayout 中完成的布局,也就是无论你定义的布局有多复杂,最终都会被放到一个 FrameLayout 当中显示,这也体现了 FrameLayout 的强大,在今后的学习工作中,希望大家一定不要忽视了 FrameLayout,在此为大家埋下一个伏笔。
这里需要再次强调:FrameLayout 是 最简单,最高效 的布局方式。它的布局方式很容易理解,我们通过它可以将内部的 View 防止到任意的方位,如果内部有多个 View,那么按照防止顺序,后加入的View会挡住前面加入的 View。
⑹ 安卓开发中framelayout怎么实现页面切换
1,后台代码setContentView设置,这种方式控制的不好会很折腾人。
2,在第四个XML种将前三个<include/>进去,并设置visibility属性为gone,然后后台处理事件中设置setVisible控制显示哪个,这种方式因所有布局文件同时绘制,故内存占用会相对大那么一丁点。
3,就你描述的要求,好像没其他方法了,也很有可能是我不知道。
⑺ 安卓帧布局叠放次序属性
属性如下:
1、android:foreground:该属性用于指定一个前景层,在所有子视图的上方进行绘制。可以设置一个颜色或者Drawable对象作为前景层。
2、android:layout_gravity:该属性用于纤明段指定子视图相对槐余于父容器的位置和对齐方式,从而影响其在布局中的叠放次序。默认情况下,子视图的左上角位于父容器的左上角,如果设置为“center”、“right”、“bottom”等值,则会偏移位置。如果想要调整叠放顺序,则可以通过调整子视毁誉图的位置和对齐方式来实现。
⑻ android 怎么设置线性布局 帧布局 全透明
Android设置线性布局 帧布局 全透明如下
1、LinearLayout(线性布局)
[html] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/mobile" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="绝汪@+id/mobile" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
2、RelativeLayout(相对布局)
[html] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<余喊RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/number"
android:id="@+id/numberlabel" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="并毁仔@+id/number"
android:layout_toRightOf="@id/numberlabel"
android:layout_alignTop="@id/numberlabel"
android:layout_marginLeft="5dp"/>
</RelativeLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/content" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:maxLines="3"
android:id="@+id/content"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"/>
</LinearLayout>
3、TableLayout(表格布局 两行两列)
[html] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
Android:stretchColumns="1">
<TableRow>
<TextView
android:text="@string/table_lable1"
android:padding="3dip"/>
<TextView
android:text="@string/table_lable2"
android:gravity="right"
android:padding="3dip"/>
</TableRow>
<TableRow>
<TextView
android:text="@string/table_lable1"
android:padding="3dip"/>
<TextView
android:text="@string/table_lable2"
android:gravity="right"
android:padding="3dip"/>
</TableRow>
</TableLayout >
4、FrameLayout(帧布局)显示控件会进行叠加,后者会叠加在前者之上
[html] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/movie" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/play"
android:layout_gravity="center"/>
</FrameLayout>