文档章节

Android学习二

jiejiecool
 jiejiecool
发布于 2015/02/15 11:27
字数 730
阅读 26
收藏 0

建立简单的用户界面

Adnroid图形用户界面是由多个View和ViewGroup构建出来的。

1.View是通用的UI窗体小组件,比如按钮(Button)或者文本框(Text Field)。

2.ViewGroup是不可见的用于定义子View布局方式的容器,比如网格部件(grid)或者垂直列表部件(list)。

ViewGroup如何组织布局分支和包含其他view对象。

                                   image

这一节的目标是使用xml创建一个带有文本输入框和按钮的界面

一、创建一个LinearLayout

       从目录res/layout中打开activity_main.xml文件,进入xml编辑,会看见有<RelativeLayout>根节点和<TextView>子节点。

1、删除TextView子节点,修改RelativeLayout根节点名称为LinearLayout

2、给LinearLayout添加一个属性为:android:orientation=”horizontal”

<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.helloworld.MainActivity" 
    android:orientation="horizontal">

 

</LinearLayout>

       LinearLayout是ViewGroup的一个子类,用户放置水平或者垂直放置子视图的部件,由属性andoroid:orientation来设定方向。LinearLayout里的子布局按照XML里定义的顺序显示在屏幕上。

        android:layout_width和android:layout_height,对于所有的Views都需要对这两个属性进行设置。

android:layout_width="match_parent"
android:layout_height="match_parent"

LinearLayout是整个视图的根布局,对于宽和高是充满整个屏幕的,通过指定match_parent,表示匹配父控件的布局。

添加一个文本输入框


<EditText android:id="@+id/edit_messsage"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:hint="@string/edit_message" />

这边需要给文本框设置一个id,因为在后面可能会用到,所以需要唯一的指定它。

想从xml里使用资源类的时候必须使用@符号,紧随@符号之后的是资源的类型(这里是id),然后是资源的名称,例如@string/zhoujie。

在这个代码中有+id这样的形式存在,+号只是在第一次定义一个资源id的时候需要

android:hint是默认在文本框中显示的字符,android:hint=”@string/edit_message”

我们这是使用的类型是string类型,资源名称叫edit_message,直接使用会报错,因为我们还没有设置这样一个string,打开res/values/strings.xml,

<string name="app_name">HelloWorld</string>
   <string name="edit_message">Enter a message</string>
   <string name="action_settings">Settings</string>
   <string name="zj">send !</string>

edit_message的值为 Enter a message

添加一个按钮

<Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/send"
     />

按钮不需要设置id,在strings.xml中设置send的值为:send!

设置结束,我们运行项目!

 

image

这里可以发现,文本框的宽度不是很合适,我们把文本框的宽度设置一样,是用android:weight这个属性设置,表示权重

<EditText android:id="@+id/edit_messsage"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/send"
    />

设置之后样式为:

image

好的,大功告成!

© 著作权归作者所有

共有 人打赏支持
下一篇: 建立第一个app
jiejiecool
粉丝 3
博文 27
码字总数 8397
作品 0
东城
程序员
私信 提问
android学习资料收集整理

本人习惯学习一门技术之前习惯先收集足够的相关资料后选择优秀的资料进行学习,android资料收集可以说是耗时最长的一次了,因为种种原因导致一直没有放下其他事情来专门学习,所以资料收集也...

阿酷
2011/12/26
401
0
Android 进阶学习笔记整理

一.android系统架构图及各层介绍 1. 应用层:应用是用java语言编写的运行在虚拟机上的程序,比如通讯录,日历,电话,短信,浏览器等。 2. 应用框架层:这一层是编写Google发布的核心应用时所...

FunCode
2018/07/22
0
0
Android基于XMPP Smack Openfire下学习开发IM

http://blog.csdn.net/h7870181/article/details/8653865 Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等 http://blog.csdn.net/h7870181/article/de......

天下杰论
2014/07/17
0
1
Android中监听锁屏变化和防止锁屏

Android app中可能存在某些可视化耗时操作,需要防止锁屏。 一、监听锁屏 添加权限 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 首先来看如何监听锁屏,使用Bro...

IamOkay
2014/11/22
0
0
Android adt bundle 开发环境配置及第一个“Hello world”程序运行

最近在学习Android 顺便记录下学习过程当作复习吧,这是写的第一篇正式博客。 一、jdk环境配置 二、android adt bundle 下载 三、安装SDK 四、模拟器及真机调试 五、第一个程序 Hello world!...

程序猿付显
2014/07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java生成二维码图片

maven配置jar包 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><dependency><groupId>com.google.z......

骑羊放狼灬
9分钟前
2
0
oracle 修改字段类型

1.varchar2 类型修改 例子:alter table T_Node modify (NODE_CONTEXT varchar2(4000)); 2.varchar2 修改为clob 例子: alter table T_Node add hehe clob; update T_Node set hehe=NODE_CO......

qimh
12分钟前
3
0
别再写 bug 了,避免空指针的 5 个案例!

空指针是我们 Java 开发人员经常遇到的一个基本异常,这是一个极其普遍但似乎又无法根治的问题。 本文,栈长将带你了解什么是空指针,还有如何有效的避免空指针。 什么是空指针? 当一个变量...

Java技术栈
17分钟前
8
0
FastJson对BigDecimal保留两位小数(valueFilter)

实现ValueFilter public class BigDecimalValueFilter implements ValueFilter { @Override public Object process(Object o, String name, Object value) {//o是待转换的对象,n......

石日天
18分钟前
2
0
android 颜色透明度参照比

##透明度参照表: 00%=FF(不透明) 5%=F2 10%=E5 15%=D8 20%=CC 25%=BF 30%=B2 35%=A5 40%=99 45%=8c 50%=7F 55%=72 60%=66 65%=59 70%=4c 75%=3F 80%=33 85%=21 90%=19 95%=0c 100%=00(全透......

东街小霸王
19分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部