解析:使用FrameLayout 可以很容易解决这个问题,
方法一:View 的上、下、左、右、居中对齐是界面中经常接触到的布局效果。单独某种对齐方式有很多种写法。但同一个方向的各种对齐布局,FrameLayout 是最容易实现的。每个View对一个的xml标签都有一个android:layout_gravity属性,通过设置该属性,可以在FrameLayout 中实现任何方向的对齐布局。由于FrameLayout中的VIew是层叠显示的,因此,可以单独对待FrameLayout 中的每一个View。这一点与LinearLayout差异很大。在LinearLayout中的View并不是对每一个android:layout_gravity 属性的值都起作用。 如android:orientation 属性的值为horizontal ,LInearLayout 中的View都会水平排列,但VIew的android:layout_gravity 属性只有在垂直(如bottom、center_vertical 等)方向的值才起作用。
当然除了FrameLaout还可以使用嵌套LinearLayout,而且,LinearLayout中使用最常见。
方法二:由于水平对齐必须将LinearLayout 标签的android:orientation 属性设置 为 vertical 。因此,可以在一个水平线性布局中放置三个垂直线性布局的LinearLayout,并将android:layout_weight 属性值设置为1,最后将android:layout_width 属性设置为fill——parent 。这样三哥哥垂直线性布局的LInearLayout 就会水平三等分进行排列。然后分别在这3个LinearLayout 设置成不同的背景色,看一下布局后的效果,如果所示。
具体布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".TETActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:background="#f00">
<!-- 左对齐的按钮-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的按钮1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:background="#0f0">
<!-- 居中对齐的按钮-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="我的按钮2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:background="#00f">
<!-- 右对齐的按钮-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="我的按钮3"/>
</LinearLayout>
</LinearLayout>
解析:使用FrameLayout 可以很容易解决这个问题,方法一:View 的上、下、左、右、居中对齐是界面中经常接触到的布局效果。单独某种对齐方式有很多种写法。但同一个方向的各种对齐布局,FrameLayout 是最容易实现的。每个View对一个的xml标签都有一个android:layout_gravity属性,通过设置该属性,可以在FrameLayout 中实现任何方向的对齐布局。由于F...
android
中
有个比较好用的布局,相对布局,常用属性如下:
android
:layout_above 将该控件的底部至于给定ID的控件之上
android
:layout_below 将该控件的顶部至于给定ID的控件之下
android
:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android
:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边
<?
xml
version="1.0" encoding="utf-8"?>
<LinearLayout
xml
ns:
android
="http://schemas.
android
.com/apk/res/
android
"
android
:orientation="vertical"
android
:id="@+id/activity_main"
android
:layout_width="match_parent"
gravity控制组件所包含的子元素的对齐方式,可多个组合
layout_gravity控制该组件在父容器里的对其方式
background为该组件设置一个背景图片,或者是直接用颜色覆盖
divider 分割线
showDividers 设置分割线所在的位置,none(无), beginning(开始),end(结束),middle(每两个组件间)
dividerPadding设置分割线的 padding
layout_weight(权重)
此前给大家推荐了一个纯css
实现
div容器内图片、文字上下居
中
的
效果
,缺点是采用了部分css3样式,兼容性较差,相关链接:纯css
实现
div容器内图片上下左右居
中
效果
今天特意在网上找到了一款插件--jquery.valign,可控制图片、文字在div容器内垂直上对齐、居
中
、底部对齐三种
效果
,使用方法:
1、调用jquery库以及本插件
2、jquery方法调用,如本案例第22、23行
使用说明:
外侧div容器必须固定高度,否则js无法判断距离。
控制图片(文字)外侧的html代码,如本例
中
的span标签,不能是内联,如是,则必须写成块状,例如11行 虽然调用图片、文字的方法一样,但是建议分开写css、js以及调用方法,不然会出现js判断高度bug问题 方法简单实用,兼容性良好。
例如调用方法:
$('.main span').valign({'unit':'px','valignTo':'middle'});
默认居
中
:$('.main span').valign();
您可以使用CSS样式
中
的text-align和margin属性来
实现
这个
效果
。例如,将图片包裹在一个div
中
,然后将text-align设置为center,将margin-left设置为auto,将margin-right设置为,这样就可以让图片居
中
,文字
左对齐
。具体代码如下:
<div style="text-align:center;">
<img src="yourimage.jpg" style="margin-left:auto; margin-right:;">
<p>这里是文字,
左对齐
</p>