- 浏览: 76168 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
文章分类
- 全部博客 (86)
- Java_Develop (6)
- Develop about Android (11)
- Develop about C (3)
- Develop about C++ (13)
- Develop about Objective-C (8)
- Develop about XML&DOM4J (6)
- Develop about JSP (7)
- Develop about Servlet (14)
- develop about MySql (4)
- Develop about Java_Socket (1)
- Develop about Java_Thread (4)
- Develop about IOS (8)
最新评论
-
eric_weitm:
在效率本身上而言,引用也有优势。另外,在编译器实现时,指针的传 ...
C++中的 引用和指针区别
今天讲解的内容是UI组件的TextView组件和EditView组件。
通过今天的作业提现各种组件的用法并介绍通用属性。
作业;
上图为今天的作业,要求用Android实现上述页面布局,不用实现功能。
首先,我写了一下string.xml文件,把所有字符串都写到里面,代码如下:
<?xml version="1.0"encoding="utf-8"?>
<resources>
<stringname="title">杨博的登录作业</string>
<stringname="mail">电子邮件:</string>
<stringname="user">用户名:</string>
<stringname="pass">密码:</string>
<stringname="repass">确认密码:</string>
<stringname="num">验证码:</string>
<stringname="really"><a href="#">看不清?</a></string>
<stringname="again"><a href="#">换一个</a></string>
<stringname="xieyi">我已阅读并同意《凤凰使用协议》</string>
<stringname="sub"><a href="#">提交注册</a></string>
</resources>
写好string.xml文件后,我们需要写布局文件。对于这个提交注册表单,我们需要用到的布局方式不是单一的,而是多种嵌套。因为,如果我们用线性布局,每行或列只能放一个组件,不能满足上图要求。用相对布局显得太繁琐。用表格布局,前四行可以完成,但验证码这一行就有点困难了,所以综述这点,我用了表格布局+相对布局的方式。
布局文件如下:
<?xml version="1.0"encoding="utf-8"?>
<TableLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/girl"
>
<!-- 电子邮件 -->
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/mail"
android:textSize="20dp"
android:textStyle="bold"/>
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/mail"/>
</TableRow>
<!-- 用户名 -->
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/user"
android:textSize="20dp"
android:textStyle="bold"/>
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/user"/>
</TableRow>
<!-- 密码 -->
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pass"
android:textSize="20dp"
android:textStyle="bold"/>
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:password="true"
android:id="@+id/pass"/>
</TableRow>
<!-- 确认密码 -->
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/repass"
android:textSize="20dp"
android:textStyle="bold"/>
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:password="true"
android:id="@+id/repass"/>
</TableRow>
<RelativeLayout >
<!-- 验证码 -->
<TextView
android:id="@+id/num_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingRight="20dp"
android:paddingTop="15dp"
android:text="@string/num"
android:textSize="20dp"
android:textStyle="bold" />
<!-- 验证码输入框 -->
<EditText
android:id="@+id/num"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/num_tv" >
<requestFocus />
</EditText>
<!-- 验证码图片 -->
<TextView
android:id="@+id/pic"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/num"
android:background="@drawable/num" />
<!-- “看不清” -->
<TextView
android:id="@+id/really"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/pic"
android:text="@string/really"
android:textSize="15dp"
android:textStyle="bold"/>
<!-- “换一个” -->
<TextView
android:id="@+id/again"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/again"
android:textSize="15dp"
android:textStyle="bold"
android:layout_toRightOf="@id/really" />
<!--协议复选框 -->
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/xieyi"
android:layout_alignParentBottom="@id/num_tv"
android:gravity="center"
android:id="@+id/xieyi"
android:layout_marginTop="45dp"/>
<!--提交注册 -->
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="@string/sub"
android:layout_alignParentBottom="@id/xieyi"
android:gravity="center"
android:layout_marginTop="110dp"
android:textColor="#FFFFFF"
android:background="#FFCC66"
android:layout_marginLeft="120dp"
/>
</RelativeLayout>
</TableLayout>
写布局文件时候,我们可以熟知命名空间是:Android,所以我们必须在每个属性添加前都写上Android。每行都写了一组<TextView>和<EditView>组件,前四行都用标准的表格布局显示。验证码这行用的是线性布局,在插入图片的时候遇到了问题,不过已经解决了,现在总结一下:
插入图片的方法有多种,其中一中是写一个<TextView>组件,然后写定长宽,写一个:Android:background=””这条属性就是定义图片的,或者说是背景图片,我们在双引号中可以加入ID,drawable等等,实现我们想要的效果;
或者是添加一个<imageView>组件,在属性中指定长宽和背景图片即可。
我在调整图片边距的时候遇到了一些问题,说白了还是对以前知识掌握的不够扎实,就是外边距和内边距的区别,事由是这样的:我创建了一个<Button>组件,想让按钮的左边距不为0dp,于是,我就设置了gravity这个属性的Center值,但结果是按钮的文字有了效果,但按钮本身没有变化,最终通过改变margin-left的值解决了这个问题。
还有就是,无论需要改变什么组件的背景图或者插入图片都可以使用通用的属性:Android:background=””,这个属性来实现,本例子中有对屏幕的背景颜色和按钮的背景色做出实例化改变。
最终的实现效果如下:
发表评论
-
Android开发——概述及环境搭建
2011-12-05 21:25 664今天开始学习安卓手机软件开发,首先介绍一下Android: ... -
Android开发之:第一个应用程序及工程文件及结构详解
2011-12-06 17:10 813Android开发之:第一个应用程序及工程文件及结构详解 ... -
Android开发——手机拨号程序实现
2011-12-06 19:50 959在上一篇文章中,我们实现了第一个程序:helloWorld,并 ... -
Android开发——关于onCreate的解读
2011-12-06 20:34 854当我们创建好一个Android项目后,打开src下的java ... -
Android开发——布局详解(上)
2011-12-07 16:54 735Android开发——布局详解(上) 在昨天的学习中, ... -
多种方式实现Android页面布局的切换
2011-12-08 18:07 1461多种方式实现页面切换 今天老师留的作业如题,要求用三种方 ... -
Android开发——Android生命周期
2011-12-10 20:11 638Activity的三种状态: ... -
Android开发——菜单小问题解决
2011-12-12 20:47 824在写菜单项的时候发现一个不知道的知识点,问题是这样产生的。写好 ... -
Android开发——跟随手指的小球实现
2012-01-11 14:13 881今天要实现的是一个跟随手指的小球,说白了就是让小球按着手指滑动 ... -
Android开发——实现点击图片切换效果
2012-01-11 14:15 968在资源中添加5张图片,重命名为a-e。 实现java代码如下 ...
相关推荐
6. **UI设计**:使用Android Studio的布局编辑器设计用户界面,可能包括登录表单、错误提示等元素。 7. **异步处理**:为了防止网络操作阻塞主线程,源码可能使用AsyncTask、IntentService或现代的Coroutines、...
《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言 第一部分 准备篇 第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 ...
2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 ...
《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...
杨丰盛,Android应用开发先驱,对Android有深入研究,实战经验极其丰富。精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件行业协会...
这部分内容深入浅出地介绍了Android程序的设计基础,从项目结构到UI设计,再到事件处理机制,帮助读者建立起对Android应用开发的整体认识。 #### 四、用户界面开发 **4.1 用户界面开发详解** - **4.1.1 用户界面...
2. **丰富的组件库**:MUI提供了一系列预设的UI组件,包括导航栏、按钮、列表、表单、弹出层等,开发者可以快速搭建界面,提高开发效率。 3. **高性能**:通过精心优化的JavaScript代码和CSS3动画,MUI确保了在各种...
《深入探索Delphi 23:FR5212组件详解》 在IT开发领域,Delphi是一款备受赞誉的集成开发环境(IDE),以其高效、快速的编译器和强大的对象 Pascal 语言闻名。当我们提到"Delphi23_FR5212.rar"时,这可能是指一个...
《Android Studio实现手机通讯录应用详解》 在Android开发领域,构建一个手机通讯录应用是初学者常遇到的挑战之一。本教程将详细介绍如何利用Android Studio来创建一个具备按首字母排序、动态添加联系人以及显示...
它主要针对Android和iOS平台,提供了一系列原生UI组件,如滑动导航、下拉刷新、侧滑菜单等,同时支持Vue.js进行数据绑定,使得开发者能够快速构建出具有原生体验的移动应用。 二、离线文档的价值 1. 高效查阅:...
《FireMonkey barcode组件开发详解——基于Delphi的源码解析》 在软件开发领域,条形码技术的应用无处不在,无论是零售业的商品追踪,还是制造业的物流管理,都离不开条形码的支持。而在 Delphi 开发环境中,利用 ...
《构建Android应用:ContactList详解》 在移动应用开发领域,Android系统凭借其开源特性,为开发者提供了广阔的空间。本文将深入探讨一个基于Kotlin语言的简单Android应用程序——ContactList,它是一个允许用户...
**手机游戏——J2ME详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门设计用于资源有限的设备,如移动电话、PDA和其他嵌入式系统。在早期智能手机时代,J2ME是开发手机游戏的重要工具,因其跨平台性...
《构建Android银行应用程序:以Java实现的数据库后端详解》 在移动技术日新月异的今天,Android应用已经成为日常生活的重要组成部分,特别是在金融领域。"Android-Banking-Application"项目正是这样一个实例,它是...
### jQuery Mobile 开发入门手册——知识点详解 #### 概述 jQuery Mobile 是一款基于 jQuery 的移动设备框架,专为智能手机和平板电脑等移动设备设计。它提供了一套完整的 UI 组件,可以快速构建美观且功能丰富的...
《FireMonkey移动设计详解——基于Delphi的跨平台开发实践》 FireMonkey(FMX)是Embarcadero Delphi和C++Builder中用于构建原生跨平台应用程序的图形用户界面(GUI)框架。这个名为"firemonkey_mobile_design_no9....
《Android视图应用详解——基于"DemoViews-CursoAndroidSENAC"项目》 在Android开发领域,视图(Views)是构建用户界面的核心元素,它们负责显示数据并响应用户的交互。"DemoViews-CursoAndroidSENAC"是一个旨在...
3. **组件库**:提供了一系列丰富的 UI 组件,如按钮、表单元素、滑动条等,这些组件具有高度可定制性,能够快速构建美观且功能完整的界面。 4. **触摸事件处理**:内置触摸事件处理器,使开发触摸友好的应用变得...
** BlendUI2: 混合UI2技术详解** BlendUI2是一个专为Web开发者设计的框架,旨在简化Native组件与Web应用之间的交互。通过这个框架,开发人员能够轻松地在Web应用程序中集成原生(Native)功能,提升用户体验,同时...
《React Native与Expo构建车辆补给管理应用——react-native-MyAbastecimento详解》 在当前的移动开发领域,React Native凭借其跨平台的能力和JavaScript的易用性,已经成为许多开发者的选择。本篇文章将深入探讨一...