- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Android编程之绝对布局AbsoluteLayout和相对布局RelativeLayout实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例分析了android编程之绝对布局absolutelayout和相对布局relativelayout。分享给大家供大家参考,具体如下:
1、绝对布局absolutelayout 。
绝对定位absolutelayout,又可以叫做坐标布局,可以直接指定子元素的绝对位置,这种布局简单直接,直观性强,但是由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差.
下面我们举一个例子看看:例子里的机器人图片大小是250x250,可以看到我们使用android:layout_x和android:layout_y来指定子元素的纵横坐标.
xml/html代码:
1
2
3
4
5
6
7
8
9
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
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<absolutelayout android:id=
"@+id/absolutelayout01"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:background=
"#fff"
><imageview
android:src=
"@drawable/android"
android:layout_y=
"40dip"
android:layout_width=
"wrap_content"
android:layout_x=
"35dip"
android:id=
"@+id/imageview01"
android:layout_height=
"wrap_content"
>
</imageview>
<textview
android:layout_height=
"wrap_content"
android:layout_width=
"fill_parent"
android:id=
"@+id/textview01"
android:text=
"android2.2 学习指南"
android:textcolor=
"#0f0"
android:textsize=
"28dip"
android:layout_y=
"330dip"
android:layout_x="35dip“>
</textview>
<textview
android:layout_height=
"wrap_content"
android:layout_width=
"fill_parent"
android:id=
"@+id/textview02"
android:text=
"图文并茂,理论清晰,操作性强"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_y=
"365dip"
android:layout_x="35dip“>
</textview>
</absolutelayout>
|
让我们看一下在wqvga的模拟器下的显示效果:
再在wvga800的模拟器下看看显示效果:
tip: 在绝对定位中,如果子元素不设置layout_x和layout_y,那么它们的默认值是0,也就是说它会像在framelayout一样这个元素会出现在左上角.
2、相对布局relativelayout 。
相对布局 relativelayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试.
下面我们用相对布局再做一次上面的例子,首先放置一个图片,其它两个文本分别相对上一个元素定位:
xml/html代码:
1
2
3
4
5
6
7
8
9
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
|
<?xml version=
"1.0"
encoding=
"utf-8"
?><relativelayout android:id=
"@+id/relativelayout01"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
android:background=
"#fff"
xmlns:android=
"http://schemas.android.com/apk/res/android"
><imageview android:id=
"@+id/imageview01"
android:src=
"@drawable/android"
android:layout_width=
"fill_parent"
android:layout_height=
"wrap_content"
android:layout_margintop=
"40dip"
>
</imageview>
<textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview01"
android:text=
"android2.2 学习指南"
android:textcolor=
"#0f0"
android:textsize=
"28dip"
android:layout_below=
"@id/imageview01"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dip"
>
</textview>
<textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview02"
android:text=
"图文并茂,理论清晰,操作性强"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_below=
"@id/textview01"
android:layout_centerhorizontal=
"true"
android:layout_margintop="5dip“>
</textview>
</relativelayout>
|
让我们看一下在wqvga的模拟器下的显示效果:
再看一下在更大屏幕(wvga800)模拟器上的显示效果:
从上图可以看到界面效果基本保持了一致,而不是像绝对定位一样龟缩在左上角;同学们看到自动缩放的功能是采用了dip做单位带来的好处.
下面介绍一下relativelayout用到的一些重要的属性:
第一类:属性值为true或false android:layout_centerhrizontal 水平居中 android:layout_centervertical 垂直居中 android:layout_centerinparent 相对于父元素完全居中 android:layout_alignparentbottom 贴紧父元素的下边缘 android:layout_alignparentleft 贴紧父元素的左边缘 android:layout_alignparentright 贴紧父元素的右边缘 android:layout_alignparenttop 贴紧父元素的上边缘 android:layout_alignwithparentifmissing 如果对应的兄弟元素找不到的话就以父元素做参照物 第二类:属性值必须为id的引用名“@id/id-name" android:layout_below 在某元素的下方 android:layout_above 在某元素的的上方 android:layout_toleftof 在某元素的左边 android:layout_torightof 在某元素的右边 android:layout_aligntop 本元素的上边缘和某元素的的上边缘对齐 android:layout_alignleft 本元素的左边缘和某元素的的左边缘对齐 android:layout_alignbottom 本元素的下边缘和某元素的的下边缘对齐 android:layout_alignright 本元素的右边缘和某元素的的右边缘对齐 第三类:属性值为具体的像素值,如30dip,40px android:layout_marginbottom 离某元素底边缘的距离 android:layout_marginleft 离某元素左边缘的距离 android:layout_marginright 离某元素右边缘的距离 android:layout_margintop 离某元素上边缘的距离 。
我们再把上面的例子重新做一遍,这一次多放一些属性在里面,大家试验一下:
xml/html代码:
1
2
3
4
5
6
7
8
9
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
69
70
|
<?xml version=
"1.0"
encoding=
"utf-8"
?><relativelayout android:id=
"@+id/relativelayout01"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
android:background=
"#cfff"
色彩的设置是argb,第一个c是透明度
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<imageview android:id=
"@+id/imageview01"
android:src=
"@drawable/android"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margintop=
"40dip"
android:layout_centerhorizontal=
"true"
>
</imageview><textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview01"
android:text=
"android2.2 学习指南"
android:textcolor=
"#0f0"
android:textsize=
"28dip"
android:layout_below=
"@id/imageview01"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dip"
>
</textview><textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview02"
android:text=
"图文并茂,理论清晰,操作性强"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_below=
"@id/textview01"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"5dip"
>
</textview>
<textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview03"
android:text=
"aligntop"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_aligntop=
"@id/imageview01"
和imageview01上边缘对齐
android:layout_centerhorizontal=
"true"
>
</textview><textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview04"
android:text=
"alignleft"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_alignleft=
"@id/imageview01"
android:layout_centerhorizontal=
"true"
>
</textview><textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview05"
android:text=
"alignright"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_alignright=
"@id/imageview01"
android:layout_centerhorizontal=
"true"
>
</textview><textview
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:id=
"@+id/textview06"
android:text=
"alignbottom"
android:textcolor=
"#333"
android:textsize=
"18dip"
android:layout_alignbottom=
"@id/imageview01"
android:layout_centerhorizontal=
"true"
>
</textview>
</relativelayout>
|
绝对布局absolutelayout和相对布局relativelayout的内容就讲完了,希望本文所述对大家android程序设计有所帮助.
最后此篇关于Android编程之绝对布局AbsoluteLayout和相对布局RelativeLayout实例详解的文章就讲到这里了,如果你想了解更多关于Android编程之绝对布局AbsoluteLayout和相对布局RelativeLayout实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
使用 AbsoluteLayout 的 JFrame 边缘是否可以有一些额外的空间?当我将一个按钮作为 JFrame 最下方的组件时,它会直接定位在 JFrame 窗口的底部边缘上,而且看起来很糟糕。
问题“AbsoluteLayout 的有用替代品是什么?”似乎是一个经常被问到但从未真正回答过的问题。我的情况如下: 我想放置圆圈(为了简单起见,我使用 RadioButtons 进行测试),以便圆圈
我在 Android 6.0 Marshmellow 上的 Xamarin Forms 中遇到绝对布局问题 当设置 View 以填充整个屏幕时,屏幕底部会留下 1px 的间隙。 奇怪的是,如果您将屏幕
为什么声明 android:id="@+id/" 总是在我想运行我的应用程序时出现?有没有办法删除它?谢谢 错误 Error:(16, 21) Resource id cannot be an e
我正在尝试恢复我的旧项目。我想为此使用 maven 并且我想添加 AbsoluteLayout 依赖项。我是 Maven 的新手,所以我不知道出了什么问题。我发现这应该有效: org.netbean
我正在尝试用 JAVA 为银行应用程序制作 GUI。如果我在 Eclipse 中使用 WindowBuilder,那么为我的框架使用绝对布局很容易创建任何东西,但问题是当我调整框架大小时。所以这就
我正在尝试编写一个日历应用程序,我计划有一个网格(周 View ),它可能是一个 TableLayout 并且直接在上面我将必须绝对定位事件网格。 但 AbsoluteLayout 已被弃用。我应该改
slider 是这样开始的。 然后我想对其进行动画处理,使其向上并变宽一点,因此我使用了以下代码片段: await one.LayoutTo(new Rectangle(0.5, 0.1, 0.8,
我有这个 .XAML 页面,但 Scroll 不起作用当我删除 AbsoluteLayout 并采用 stacklayout 时,它工作正常。
我有以下布局: 还有一个简短的代码: public class LayoutTest extends Activity {
我在一台机器上使用 NetBeans 使用 AbsoluteLayout 制作了一个 Java 应用程序,然后将项目数据文件移动到另一台机器,在那里我收到了一些库(包括 AbsoluteLayout
我有一个 Xamarin 项目。我为 IOS、Android 和 UWP 开发。在我的应用程序中,我有 UI 元素的手动布局逻辑。在 IOS 中,我可以使用 frame 属性来设置 View 的渲染位
我看到帖子说 FrameLayout 是替代方案,我应该使用边距来定位东西(这让我觉得非常违反直觉,但是好吧......如果它有效,我会接受它)。但是,我无法让它工作,所以,我正在寻求帮助。 这是我的
目前,我在使用 Vaadin Table 时遇到了一个非常奇怪的问题。如果我在表中使用 AbsoluteLayout 数据不会显示,但如果我使用即 HorizontalLayout,数据会完美显示
我想通过 以编程方式 提供 x,y 坐标来使用 AbsoluteLayout View 显示标签。问题是 ScrollView 覆盖了 AbsoluteLayout 并且无法滚动页面。 最佳答案 不要
如果不推荐使用 AbsoluteLayout,我可以使用什么来代替它? 我已经完成了一个使用 AbsoluteLayout 的应用程序,但它不适用于不同的屏幕分辨率。我使用是因为我可以设置按钮的 X
我正在使用带有 AbsoluteLayout 的 Xamarin.Forms,但是,我不确定如何处理元素的定位。 我正在使用比例值,所以如果我在 AbsoluteLayout.LayoutBounds
我已将我的 Layout 切换为 AbsoluteLayout 并且所有内容都已就位,但是当我运行程序时,我的 JButtons 是不可见的,直到我将鼠标悬停在它们上面。我应该更改什么以使它们始终可见
我正在开发一个 Android 应用程序,其布局包括围绕圆形元素排列的按钮。由于所述元素的角会与其他按钮重叠,因此推荐的布局类型(LinearLayout 等)不是可行的选择。 但是,我想正确地执行此
AbsoluteLayout类已被弃用,但仍然可以用代码编写它并且它可以工作。使用这个类会不会有什么问题?将应用程序部署到手机上后能否正常运行? 谢谢 最佳答案 弃用通常意味着您不鼓励使用它,因为存在
我是一名优秀的程序员,十分优秀!