- 浏览: 3026236 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
android开发中的UI控制(六)
转载自 : http://www.android777.com/index.php/tutorial/androids-ui-control-f.html
之前介绍了Android中的文本控制 、按钮控制 、列表控制 和其他一些有趣的控件 。大家应该对这些基本的控制控件有一些了解了,但是如何把这些控制控件合成在一个界面中,控制整体布局呢?这时候就需要了解Android中的布局管理控件。
在Android中几个常见的布局控制对象:LinearLayout、TableLayout、RelativeLayout、 FrameLayout和AbsoluteLayout(Deprecated),他们都继承了ViewGroup,作为各种不同布局管理模型的容器,它 们都提供了各自独到的功能。
FrameLayout:
FrameLayout是一个最简单的布局文件,它将子视图放在它的左上方,然后整个容器只能显示一个子视图,如果有多个子视图则他们会像卡片一样重叠在一起只有最上面的能被看到,不过如果你设置它的背景是透明的,则可以透过上面的卡片看到下面的内容。
下面代码:res\layout\layout.xml:
<?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:id="@+id/layout_imageview_01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/js1" /> <ImageView android:id="@+id/layout_imageview_02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/js2" /> </FrameLayout>
(上面xml代码中的js1和js2对应于附件中的图片js1.jpg,js2.jpg)
上面代码将两个ImageView放到FrameLayout中,因为FrameLayout只能显示一个子视图,所以你只能看到前面第一个ImageView。
LinearLayout:
LinearLayout是一个最常用的基础布局对象。它通过设置orientation将内部的所有子视图以横向或纵向进行排列。你将多个横向的 LinearLayout以当成子视图放进一个纵向的LinearLayout中,这样就形成一个类似Table的布局,不过如果是这种情况,最好是用 TableLayout比较合适。
下面布局文件就是一个纵向布局的例子:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="姓名:" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="周杰伦" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="照片:" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/js1" /> </LinearLayout>
视图效果如下:
在LinearLayout中还可以设置内部子视图的方位(gravity)。 Gravity是一个排列属性,你可以通过设置它的值为left、center或right而达到将视图放在父视图的左边、中间或右边的地方。
TableLayout:
TableLayout布局管理对象会将容器内部的子节点按照行列进行排序,它就像是html中的<table>节点。在 TableLayout节点内部中声明<TableRow>将为table添加一行,<TableRow>中的子视图将排成N 列,如果<TableRow>内有N个子视图就将该行划分为N列。整个表的列是是根据表格每行中最多有多少列来决定的,假设整个表格中有2行 是3列,1行是4列则表格将分为4列。
还有一个需要注意的特性是:TableLayout默认会将所有的子节点当成它的一行数据,而且你可以放任意的View到TableLayout 中,默认它会将它的直接子节点当成一行,所以你可以定义任意View对象在TableLayout中,它们默认会各自占用一行,而且你对于 TableLayout的直接子节点设置 layout_width=”wrap_content”属性将不会生效,因为默认它会重写成fill_parent。
TableLayout还有一个特殊的属性:stretchColumns用来设置需要拉宽的列,因为有的列可能不会填满区域,为了布局的美观你可 以定义哪个列将进行拉宽。用逗号隔开的列值来指定哪些列需要拉宽,列值是从0开始的,如果你需要拉升第2和第3列你可以设置 stretchColumns=”1,2″。同样的道理,如果你需要紧缩一个列你可以使用:shrinkColumns来指定, 如果你要让某些列不可见,可以通过设置collapseColumns属性,这些的用法都跟stretchColumns一样。
<?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="Open..." /> <TextView android:text="Ctrl-O" android:gravity="right" /> </TableRow> <TableRow> <TextView android:text="Save As..." /> <TextView android:text="Ctrl-Shift-S" android:gravity="right" /> </TableRow> </TableLayout>
RelativeLayout:
RelativeLayout是一个比较复杂、难用的布局管理对象,它是用定义各个视图相对的位置来管理布局。它一个好用的地方是嵌套的布局层次 少,假设你要做一个Table布局,使用LinearLayout来做的话内部使用多个LinearLayout来协作完成,这样整个视图对象的嵌套层次 就变多了,而手机因为处理器性能不高、内存也不多,所以当嵌套层次多时手机响应的速度就会变慢。而RelativeLayout就是用来弥补这个不足,它 不需要嵌套多个布局对象就可以完成复杂的布局。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#008000" > <TextView android:id="@+id/label" android:text="Type here:" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/entry" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/label" /> <Button android:id="@+id/ok" android:text="OK" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignParentRight="true" /> <Button android:id="@+id/cancel" android:text="Cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/ok" android:layout_alignTop="@id/ok" /> </RelativeLayout>
发表评论
-
Android Fragment 真正的完全解析(下)
2015-03-25 14:30 1145Android Fragment 真正 ... -
Android Fragment 真正的完全解析(上)
2015-03-25 10:14 942Android Fragment 真正的 ... -
Activity的生命周期方法
2015-03-25 09:54 609一:Activity的生命周期方法 Android ... -
Android在layout xml中使用include
2015-03-25 07:28 1025在Android的layout样式定义中,可以使 ... -
一个支持圆角的快速ImageView:RoundedImageView
2015-03-07 09:50 11125一个支持圆角的快速ImageView:Rounded ... -
ImageView图片设置
2015-03-05 23:08 990显示任意图像,例如图标。ImageView类可以加载 ... -
ListActivity的onListItemClick不响应的解决办法
2015-03-04 17:57 1137ListActivity的onListItemClic ... -
ListView中有控件隐藏或显示造成的显示错误问题
2015-03-03 23:03 1886ListView中有控件隐藏或显示造成的显示错误问题 ... -
Android中Application类用法
2015-03-03 09:12 1027Android中Application类用法 ... -
Android使用Application总结
2015-03-03 09:11 1220Android使用Application ... -
在android中运行java main方法
2015-02-27 10:38 1032在android中运行java main方法 ... -
android BitmapFactory.Options
2015-02-19 21:01 1060public Bitmap inBi ... -
android 基础demo例子
2015-02-16 21:06 860demoDatas.add(new DemoBe ... -
Android大图片裁剪终极解决方案
2015-02-15 17:08 2196Android大图片裁剪终 ... -
Android_照相机Camera_调用系统照相机返回data为空
2015-02-15 14:17 1317Android_照相机Camera_调用系统照相机返回 ... -
Android: 打印Bundle内容
2015-02-15 14:11 3027Android: 打印Bundle内容 有的时 ... -
android线程、UI、AsyncTask
2015-02-13 18:06 1307本文是转摘的,看过了觉得很好!所以转了过来!如果你想要 ... -
Fragment中ListView的使用
2015-02-06 23:01 2155Fragment中ListView的使用 直接 ... -
在安卓开发时用酷派手机无法打印出应用内的日志的解决方法
2014-12-11 20:39 1227在安卓开发时用酷派手机无法打印出应用内的日志的解决方法 ... -
查看安卓APK文件证书的方法
2014-12-04 10:05 1053************************** ...
相关推荐
6. **DialogFragment**:对话框在Android应用中广泛应用,DialogFragment是Android官方推荐的方式,它继承自Fragment,可以方便地管理和控制对话框的显示与消失。 7. **动画(Animation)**:Android支持属性动画...
本文将深入探讨Android 8.1版本的SystemUI源码,介绍其结构、工作原理以及如何利用提供的gradle配置进行开发。 首先,让我们来看看`SystemUI`的构成。SystemUI组件主要由以下几个部分组成: 1. **StatusBar**:...
在Android开发中,UI部分是构建用户界面的关键,它决定了应用程序的外观和用户体验。本教程主要涵盖Android UI设计的基础知识。 1. 用户界面(UI)理解 用户界面是人与机器交互的桥梁,尤其在当前高度竞争的软件...
在Android系统架构中,SystemUI位于应用层与系统服务层之间,它提供了通知中心、状态栏、快速设置面板、锁屏界面以及各种系统级别的交互控件。深入理解SystemUI的源代码对于开发者优化系统UI性能、自定义系统行为或...
尽管AbsoluteLayout在Android SDK 2.3.3之后不再推荐使用,但在早期版本中,它可以允许开发者精确控制每个子视图的位置,通过设置`android:layout_x`和`android:layout_y`属性。然而,由于其不适用于不同屏幕尺寸和...
在Android应用开发中,线程管理和UI更新是至关重要的部分,因为Android系统为每个应用程序分配一个主线程,也称为UI线程。主线程主要负责处理用户界面的交互,包括绘制和更新视图。然而,执行耗时的操作(如网络请求...
Android开发自定义View之仿米家APP双色灯控制UI:做一个智能家居产品的简单智能灯UI https://blog.csdn.net/xh870189248/article/details/80486158
在本资源中,"老罗Android开发视频教程 (android常用UI编程) 26-33集源码.zip"是一个包含Android应用开发教学内容的压缩文件。老罗,可能指的是知名的技术讲师罗永浩,以其通俗易懂的讲解风格而闻名。这个教程聚焦于...
在Android开发领域,UI设计是至关重要的一环,它直接影响到应用程序的用户体验和视觉吸引力。"Android新手UI集合全"这个资源包,显然为初学者提供了一整套的UI设计元素,帮助他们快速理解和实践Android应用界面的...
在Android开发过程中,UI设计是至关重要的一个环节,而颜色管理是UI设计中的核心部分。开发者经常需要知道屏幕上的各种UI元素所使用的具体颜色值,以便在代码中精确地重现这些颜色。本教程将详细介绍如何获取UI的...
总之,Android Things提供了将Android的丰富UI开发经验应用于物联网设备的机会。通过理解如何在有限的硬件资源上构建和管理UI,开发者可以创造出功能强大且直观的物联网解决方案。sample-simpleui项目就是一个很好的...
Android UI 设计器是Android开发中的一个重要工具,它允许开发者直观地设计应用程序的用户界面,无需手动编写XML布局代码。这个工具极大地提升了开发效率,使得非程序员也能参与到UI设计中来,实现快速预览和调整...
在Android开发中,锤子手机以其独特的UI设计风格赢得了众多用户的喜爱。为了实现类似锤子UI的布局,开发者需要深入理解Android布局系统,并掌握一些特殊的设计技巧。本篇将主要探讨如何在Android中仿制锤子UI的格子...
在Android应用开发中,UI框架的设计是至关重要的,它直接影响到应用的用户体验和代码的可维护性。"android项目整体UI框架"这个主题主要涵盖了三个方面:自定义Android项目的底部任务栏、实用Fragment的切换以及项目...
"android 音乐开发 UI素材"这个主题涉及到的是应用程序用户界面中的图形元素,尤其是针对音乐播放功能的按钮和布局设计。酷狗音乐和网易云音乐是两款在中国非常流行的音乐应用,它们的UI设计被广大用户所接受和喜爱...
在Android开发中,UI设计和实现是至关重要的部分。为了提高代码的可维护性和复用性,开发者常常会构建一个统一的UI框架。这个框架旨在规范应用中的界面设计,简化多维度UI管理,减少代码冗余,提升开发效率。本文将...
在Android开发中,模仿流行的移动应用UI布局是提升用户体验和设计水平的重要步骤。易信,作为一款在中国广受欢迎的即时通讯应用,其简洁而高效的设计风格深受用户喜爱。本源码项目专注于重现易信的UI布局,帮助...
在Android开发中,UI设计是至关重要的一环,它关乎到应用程序的用户体验和视觉吸引力。本压缩包中的"android UI 各种小例子"为初学者提供了丰富的实践资源,旨在帮助开发者掌握基本的Android用户界面设计技巧。每个...
在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与...在学习过程中,建议结合官方文档和其他教程,以全面、深入地学习Android开发。
在Android开发中,UI(用户界面)控件是构建应用程序不可或缺的部分。它们为用户提供与应用交互的方式,使得信息展示和操作更加直观。Android系统提供了多种控件,涵盖各种功能,从简单的按钮到复杂的布局。本篇文章...