文档章节

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

好的,大功告成!

© 著作权归作者所有

共有 人打赏支持
jiejiecool
粉丝 3
博文 27
码字总数 8397
作品 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 进阶学习笔记整理

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

FunCode
07/22
0
0
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
06/26
0
0
第一天学习Android的一些笔记

昨天学习了怎样装Android配置环境,下载SDK用了好久的时间,再加上一开始不会,弄了好长时间,今天第一天学习,跟着视频教程学的。下边是我的一些笔记,仅做留念与学习笔记 。 快捷键: 智能...

子弹兄
2014/01/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
46分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
57分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部