[Android Training视频系列]1.3 Building a Simple User Interface

eclipse中进行android界面设计与安装教程 eclipse中进行android界面设计与安装教程 根据自己的操作系统(一般为Windows),到https://www.oracle.com/java/technologies/javase-jdk8-downloads.html下载相应版本的JDK, Windows32位下载Windows x86版本,64位下载Windows x64版本,但是要是进行本页面的操作,下载32位的,因为后面的... 阅读详情
1.主要内容

本小节介绍如何构建一个简单的用户界面,包括一个输入框和一个按钮。详细介绍了各个View的属性值。
2.视频讲解
http://www.eyeandroid.com/thread-10716-1-1.html

3.翻译参考

目录

 
  • 1 构建一个简单的用户界面
    • 1.1 使用线性布局
    • 1.2 添加一个文本输入框
    • 1.3 增加字符串资源
    • 1.4 添加一个按钮
    • 1.5 让输入框充满整个屏幕的宽度

构建一个简单的用户界面

Android的图形用户界面使用View和ViewGroup的层级类进行创建。View类是通用的UI窗体小部件,比如按钮或者文本框,而ViewGroup是用于定义子View布局的可视化容器,比如网格部件(grid)和垂直列表部件(list)。

Android提供了对应于View和ViewGroup子类的XMl查询表,你可以在XML里使用层级视图元素创建自己的UI

viewgroup.png

图1:展示了ViewGroup类在布局里形成的分支并且包含View类

在这一次教程里,你将学到怎样用XML创建一个带有文本输入框和按钮的界面。在接下来的课里,你将学会对按钮做出响应,当按钮被按下的时候文本框里的内容被发送到另外一个Activity。


使用线性布局

从目录res/layout里打开main.xml文件(每一个新创建的Android项目都默认包含这个文件)。

注意:在eclipse中,当你打开布局文件的时候,首先看到的是ADT布局编辑,这个编辑页是使用所见即所得的工具帮助你创建布局。对于本课来说,你是直接在XML里进行操作,因此点击屏幕下方的main.xml标签进入XML编辑页。

在默认的情况下,main.xml中包含一个线性布局和文本框。这里你可以重用线性布局,但是需要改变里面的内容和布局方向。结果如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
</LinearLayout>


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

另外的两个属性android:layout_width和android:layout_height,对于所有的部件都需要对这两个属性进行设这。

在这里因为线性布局是整个视图的根布局,所以对于宽和高都应该是充满整个屏幕的,指定为fill_parent。

注意:从Android2.2开始,为了更好的使用,fill_parent被改为match_parent。因为当我们把一个子部件设置为fill_parent之后,该部件不是占有同等级部件剩余的空间,而是和同等级部件重叠在一起。相反,使用match_parent则不会出现重叠的现象。

想要获得更多的信息,请参照XML布局向导。

添加一个文本输入框

在线性布局了里,添加一个元素就可以创建一个用户可编辑的文本框,EditText类属于View的一个用于展示可编辑的文本的子类。

和View的别的类一样,你需要设置XML里的某些属性来指定EditText的具体功能,下边是你应该在线性布局里指定的一些属性元素

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


关于一些属性的说明:

Android:id

这里定义的是View的唯一标示符,你可以在程序的代码里进行引用,你可以对这个类进行读和修改的操作(在下一课里将会用到)
当你想从XML里使用资源类的时候必须使用@符号,紧随@之后的是资源的类型(这里是id),然后是资源的名字(这里使用的是edit_message)。(其他的资源可以使用相同的名字只要他们不是相同的资源类型,例如:字符串资源可以使用相同的名字)。
+号只是当你第一次定义一个资源ID的时候需要。这里是告诉SDK此资源ID需要被创建出来。在应用程序被编译之后,SDK就可以直接使用ID值,edit_message是在项目gen/R.java文件中创建一个新的标示符,这个标示符就和EditText关联起来了。一旦资源ID被创建了,其他资源如果引用这个ID就不再需要+号了,。这里是唯一一个需要+号的属性。可以参考右栏获取更多关于资源类的信息。

Android:layout_width 和android:layout_height

对于宽和高不建议指定具体的大小,使用"wrap_content"指定之后,这个视图只是占据内容大小的空间。如果你使用了"fill_parent",这时EditText将会布满整个屏幕,因为它将适应父布局的大小。想要看到更多信息,请参考XML 布局向导。

Android:hint

当文本框为空的时候,会默认显示这个字符串。对于字符串"@string/edit_message"的值所引用的资源应该是定义在单独的文件里,而不是直接使用字符串。因为使用的是值是存在的资源,所以不需要使用+号。然而,由于你还没有定义字符串的值,所以在添加"@string/edit_message"时候会出现编译错误。下边你可以定义字符串资源值来去除这个错误。

增加字符串资源

当你在用户界面定义一个文本的时候,你应该把每一个文本字符串列入资源文件。对于所有字符串值,字符串资源能够单独的修改,在资源文件里你可以很容易的找到并且做出相应的修改。通过选择定义每个字符串,还允许您对不同语言本地化应用程序。

默认情况下,在res/values/string.xml里,你的Android项目包含一个字符串资源文件。打开这个文件,删除已经存在的"hello"字符串,为"edit_message"增加一个供使用的字符串值。

同时在这个文件里,再给button添加一个字符串,命名为"button_send".

下边就是定义好的string.xml文件内容:

 
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
</resources>
 


要想获得跟多的对于不同语言本字符串资源本地化的问题,请参考 支持不同设备的课程。

添加一个按钮

紧跟后边,添加一个到布局里。

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

 

宽和高被设置为"wrap_content:,这时按钮占据的大小就是按钮里文本的大小。这个按钮不需要指定android:id的属性,因为在Activity代码里不被引用到。

让输入框充满整个屏幕的宽度

当前EditText和Button部件只是适应了他们各自内容的大小,如图2所示:

6.jpg

图2 EditText和Button有他们自己宽度,被设置为"wrap_content"

这样设置对按钮来说很合适,但是对于文本框来说就不太好了,因为用户肯能输入更长的文本内容,需要在左边留有一定的空白空间。因此如果能够沾满整个宽度会更好。LinearLayout使用权重的属性来达到这个目的,你可以使用android:layout_weitht属性来设置。

你可以根据每一个部件所占的空间来指定圈中值的大小,它的总数是有同级别的部件来决定的。就类似于饮料的成分配方:“两份伏特加酒,一份咖啡利口酒”,意思就是这个酒中伏特加酒占三分之二。例如,你设置一个View的权重是2,另一个View的权重是1,那么总数就是3,这时第一个View占据2/3的空间,第二个占据1/3的空间。如果你再加入第三个View,权重设为1,那么第一个View会占据1/2的空间,剩余的被另外两个View平分。

对于所有的View默认的权重是0,如果你只设置了一个View的权重大于0,那么这个View将占据除去别的View本身占据的空间的的所有剩余空间。因此这里设置EditText的权重为1,使其能够占据除了按钮之外的所有空间。

 
    <EditText
        android:layout_weight="1"
        ... />
 


为了达到更有效的布局,在你设置权重的时候,你应该把EditText的宽度设置为0。如果你设置为"wrap_content"作为宽度,系统需要自己去计算这个部件所占有的宽度,而此时的因为你设置了权重,所以系统自动回占据剩余空间,EditText的宽度最终成了不起作用的属性。

 
    <EditText
        android:layout_weight="1"
        android:layout_width="0dp"
        ... />

 

图3,展示了设置权重时候的结果

9.jpg

图3 EditText设置了权重,因此占据了整个LinearLayout的剩余空间大小

现在看一下完整的布局文件内容

 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        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/button_send" />
</LinearLayout>

 

整个布局默认被Activity类使用,Activity类是在你创建一个项目的时候SDK工具自动生成的,你可以直接运行app查看运行结果。

在Eclipse,点击工具栏里的Run

或者使用命令行,进入你项目的根目录直接执行

 ant debug
adb install bin/MyFirstApp-debug.apk

继续下一教程学习有关怎么对按钮做出相应,同时读取文本里的内容,启动另外一个Activity,以及更多信息。


【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04 编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017) 阅读详情

相关推荐

Android简单的注册登录页面ecplise开发

Android简单的注册登录页面ecplise开发,用Post方式提交数据

【Android】eclipse 实现登录、注册、修改密码、数据库操作

该项目参考:https://blog.csdn.net/midnight_time/article/details/91203973 目录 登录、注册、修改密码功能的实现 一、UI的设计 二、实现功能部分,Java文件 登录、注册、修改密码功能的实现 一、UI的设计 1.主界面的布局文件 main.xml文件代码如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/...

weixin_44480960的博客 1万+

Android登录界面布局

eclipse下安卓app登录界面布局,android版本为4.0.3,API15,我直接在安卓手机真机上测试,还在入门阶段,参考了论坛的例子写的一个界面布局

基于eclipse的android项目实战—博学谷(三)登录界面

本项目是用eclipse软件编写,经过我的亲自实践,其真实有效,希望能给您有所帮助???????? 项目版本:android4.0 AVD建议:android4.4及以上 文章目录 登录界面主要用于输入登录信息,当点击“登录”按钮时需要在 Shared Preferences中查询输入的用户名是否有对应的密码,如果有则用此密码与当前输入的密码(需MD5加密)进行比对,如果信息一致,则登录成功,并把登录成功...

雨云21的博客 1万+

VS Code配置MASM32汇编环境:从安装到调试的完整指南

本文提供了一份详尽的指南,教你如何在VS Code中配置MASM32汇编开发环境,实现从安装、环境变量设置到编写、编译和调试32位Windows汇编窗口程序的完整工作流。通过集成现代编辑器的便利性与经典汇编工具链,旨在降低学习门槛,提升底层开发效率。

nn3456的博客 486

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5433

如何有eclipse的安卓做一个简单的密码登录

如何有eclipse的安卓做一个简单的密码登录 材料:Eclipse和其的avd 来看一下展示效果 密码登录后进入下一个界面。 ##下面就让我们开始吧 首先我们先了解一下什么是JAVA中怎么进行输入两个字符串进行匹配 如何插入一段漂亮的代码片 //简单的密码登录 public class tes1 { public static void main(String[] args) { S...

佐勒之博 1万+

用Cursor+Node.js零代码搭建健康数据仪表盘:从数据录入到可视化全流程

本文详细介绍了如何利用Cursor AI编程助手和Node.js,无需手动编写代码,即可构建个人健康数据仪表盘的全流程。通过自然语言指令,实现从数据录入、存储到动态图表可视化的完整系统,展示了AI驱动开发在降低技术门槛、提升开发效率方面的强大能力。

gitlab7runner的博客 700

android的简单用户注册的开发工具,Android用户注册界面简单设计

本文实例为大家分享了Android用户注册界面的设计,供大家参考,具体内容如下I. 实例目标设计一个用户注册界面,在其中要使用到一些基础控件,如 文本框、编辑框、按钮、复选框等控件II. 技术分析首先在布局文件中使用控件的标记来配置所需要的各个控件,然后在 主Activity中获取到该控件,给其添加监听器来监听其操作,最后在控制台输出所操作的内容。III. 实现步骤在Eclipse中创建 Andr...

weixin_31190007的博客 640

深信服AF设置安全防护策略

防火墙设置安全防护策略,禁止用户访问指定网站

m0_64423407的博客 4844

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1474

Android 搭建(Servlet)服务器端 实现用户登录

首先准备JavaEE版的Eclipse 和 tomcat 到官网上下载最新版的。哎 不为别的就喜欢最新的 。下载好后解压打开eclipse 。1 配置服务器 打开windows->preference -> server ->runtime Enviromts。 2 点击 add 选择Apache Tomcat 的版本 然后next 。 接着Browse 选择你刚才tomcat 的解压位置。

my-soul 3782

Yolov8-pose关键点检测:训练实战篇 | 手部关键点检测

yolo8-pose实战检测手部关键点并优化。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3397

Eclipse开发Android应用

用 Eclipse 开发 Android 应用程序 查看文章     DoS攻击软件 TCP/IP漏洞是指利用主机协议栈处理及协议本身机制的缺陷造成的安全漏洞,这类安全漏洞很容易造成系统缓冲区溢出,不识别IP欺

大写的牛逼 4684

适航规章、标准,书籍资料下载汇总(增加DO-297 IMA)

从事IMA平台适航工作的朋友看过来,DO-297英文版PDF可以下载了!更新日志:2024-9-28:初版。2024-10-21:增加DO-330英文版PDF下载,后台回复关键词”330“获取下载链接。2024-10-30:增加DO-160G中文版(非机翻)和英文版PDF下载,后台回复关键词”160“获取下载链接。2024-11-10:增加DO-297英文版PDF下载,后台回复关键词”297“获取下载链接。以下是一些收集到的适航相关的资料,分享给大家。

qq_41854911的博客 1579

全志F1C100S/F1C200S学习笔记(11)——spi-flash 启动全流程适配烧录及踩坑指南

SPI Flash 系统编译 spi-flash 启动适配 分区规划: 分区序号 分区大小 分区作用 地址空间及分区名 mtd0 1MB (0x100000) spl+uboot 0x0000000-0x0100000 : “uboot” mtd1 64KB (0x10000) dtb文件 0x0100000-0x0110000 : “dtb” mtd2 4MB (0x400000) linux内核 0x0110000-0x0510000 : “kernel” mtd3 剩余 (

丨晋丨 1万+

用Ecplice做一个简单的登录界面

注意:如需登录,需要再重新定义一个项目,实现页面跳转的功能。

weixin_63236032的博客 3957

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

基于eclipse的android项目实战—博学谷(一)欢迎界面

本项目是用eclipse软件编写,经过我的亲自实践,其真实有效,希望能给您有所帮助???????? 项目版本:android4.0 AVD建议:android4.4及以上 文章目录 博学谷项目的欢迎界面由RealativeLayout布局和TextView控件组成,其中RealativeLayout的背景图片用于展示产品Logo,TextView控件用于展示程序版本号。 欢迎界面的效果图如图所示: 参考...

雨云21的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 实训 Day2——项目实战(简单的登录页面)

简单做点界面摸摸鱼

weixin_62499894的博客 747

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于eclipse的android项目实战—博学谷(二十二)登录图片验证码

本项目是用eclipse软件编写,经过我的亲自实践,其真实有效,希望能给您有所帮助???????? 项目版本:android5.1.1 ADT版本:23.0.6 SDK版本:24.4.1 运行模拟器:夜神模拟器 若有不足之处或不对的地方,欢迎大佬们指点 本项目源码下载链接: https://download.csdn.net/download/hyh17808770899/20285938 在下载源码之前请先下载apk安装查看运行效果:https://yuyunyaohui.lanzoui.com/i

雨云21的博客 2232

实现android注册登陆功能的客户端服务器源码与解析socket

在android的app中,有关注册登陆功能十分常见,对于用户来说,第一次使用某个软件势必会涉及到这个问题,所以注册登录功能的实现也是一种基础功能,对于android开发人员也是必备技能,下面将就具体内容进行详细讲解。 一、必备基础 1、java基础和java中的socket编程,如果不懂的话不建议看代码,先把基础弄懂再来看事半功倍 2、android编程基础,至少要会使用最基本的b

灵魂画师牧码 9120

android学习笔记之使用Eclipse搭建web服务器实现Android客户端登录

接触Android有半年了,一直啃不下也不敢去触碰的一块儿硬骨头就是客户端与服务端的通信。 上一篇文章写了通过谷歌官方通信框架Volly实现手机号码归属地查询,但这并不是真真意义上的掌握客户端与服务端之间的数据交换, 因为服务端是调用了由聚合网提供的一个接口API,所以这次我尝试使用eclipse亲手搭建自己的web服务器并实现一个简单的登录功能。 由于我是超级菜鸟型,所以本文适合超级入门级菜鸟参考,大神请无视奋斗。

小康子的博客 4341

eclipse实现Android登录功能,eclipse开发安卓登录

划线的地方怎么解决啊?有没有大佬知道如何修改package com.example.login;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content...

weixin_39969257的博客 1650
上一篇: 【Android每日一讲】2012.11.26 消费券采购列表 - 多选项CheckBox的应用
下一篇: [Android Samples视频系列之ApiDemos] App-Activity-Reorder Activities
cofftech
博客等级 码龄16年 46粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值