安卓案例:利用相对布局实现注册页面
2018-03-06 09:31
597 查看
安卓案例:利用相对布局实现注册页面
一、相对布局(RelativeLayout)一个控件的位置取决于它和其它控件的相对关系。优点:比较灵活;缺点:掌握比较复杂。
(一)继承关系图
(二)常用属性1、相对于父容器居中(1)centerInParent 在父容器居中(2)centerHorizontal 在父容器水平居中(3)centerVertical 在父容器垂直居中
2、相对于其它控件的位置(1)toLeftOf 在……左边(2)toRightOf 在……右边(3)above 在……上面(4)below 在……下面
3、相对于其它控件对齐(1)layout_alignLeft 与……左对齐(2)layout_alignRight 与……右对齐(3)layout_alignTop 与……顶对齐(4)layout_alignBottom 与……底对齐(5)layout_alignBaseLine 与……基线对齐
4、相对于父容器对齐(1)layout_alignParentLeft 与父容器左对齐(2)layout_alignParentRight 与父容器右对齐(3)layout_alignParentTop 与父容器顶对齐(4)layout_alignParentBottom 与父容器底对齐
@+id/button —— 创建新的id(建议使用)
@id/button —— 引用已有的id
二、案例运行效果
三、实现步骤1、创建安卓应用0403Demo
2、修改主布局文件activity_main.xml
4、主界面类MainActivity
一、相对布局(RelativeLayout)一个控件的位置取决于它和其它控件的相对关系。优点:比较灵活;缺点:掌握比较复杂。
(一)继承关系图
(二)常用属性1、相对于父容器居中(1)centerInParent 在父容器居中(2)centerHorizontal 在父容器水平居中(3)centerVertical 在父容器垂直居中
2、相对于其它控件的位置(1)toLeftOf 在……左边(2)toRightOf 在……右边(3)above 在……上面(4)below 在……下面
3、相对于其它控件对齐(1)layout_alignLeft 与……左对齐(2)layout_alignRight 与……右对齐(3)layout_alignTop 与……顶对齐(4)layout_alignBottom 与……底对齐(5)layout_alignBaseLine 与……基线对齐
4、相对于父容器对齐(1)layout_alignParentLeft 与父容器左对齐(2)layout_alignParentRight 与父容器右对齐(3)layout_alignParentTop 与父容器顶对齐(4)layout_alignParentBottom 与父容器底对齐
@+id/button —— 创建新的id(建议使用)
@id/button —— 引用已有的id
二、案例运行效果
三、实现步骤1、创建安卓应用0403Demo
2、修改主布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:background="@mipmap/background" android:padding="16dp" tools:context="net.hw.ex0403.MainActivity"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:text="@string/title" android:textColor="#0000ff" android:textSize="30sp" /> <TextView android:id="@+id/tv_username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:layout_marginTop="15dp" android:text="@string/username" android:textSize="20sp" /> <EditText android:id="@+id/edt_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv_username" android:layout_toRightOf="@+id/tv_username" android:hint="@string/input_username" android:textSize="20sp" /> <TextView android:id="@+id/tv_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_username" android:layout_marginTop="20dp" android:text="@string/password" android:textSize="20sp" /> <EditText android:id="@+id/edt_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv_password" android:layout_alignLeft="@+id/edt_username" android:layout_toRightOf="@+id/tv_password" android:hint="@string/input_password" android:inputType="textPassword" android:textSize="20sp" /> <TextView android:id="@+id/tv_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_password" android:layout_marginTop="20dp" android:text="@string/phone" android:textSize="20sp" /> <EditText android:id="@+id/edt_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv_phone" android:layout_alignLeft="@+id/edt_password" android:layout_toRightOf="@+id/tv_phone" android:hint="@string/input_phone" android:textSize="20sp" /> <TextView android:id="@+id/tv_email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_phone" android:layout_marginTop="20dp" android:text="@string/email" android:textSize="20sp" /> <EditText android:id="@+id/edt_email" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv_email" android:layout_alignLeft="@+id/edt_phone" android:hint="@string/input_email" android:textSize="20sp" /> <TextView android:id="@+id/tv_gender" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_email" android:layout_marginTop="20dp" android:text="@string/gender" android:textSize="20sp" /> <RadioGroup android:id="@+id/rg_gender" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/edt_email" android:layout_alignTop="@+id/tv_gender" android:layout_toRightOf="@+id/tv_gender" android:orientation="horizontal"> <RadioButton android:id="@+id/rb_male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30dp" android:checked="true" android:text="@string/male" android:textSize="20sp" /> <RadioButton android:id="@+id/rb_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/female" android:textSize="20sp" /> </RadioGroup> <TextView android:id="@+id/tv_hobby" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_gender" android:layout_marginTop="20dp" android:text="@string/hobby" android:textSize="20sp" /> <CheckBox android:id="@+id/cb_travel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv_hobby" android:layout_alignLeft="@+id/rg_gender" android:layout_toRightOf="@+id/tv_hobby" android:text="@string/travel" android:textSize="18sp" /> <CheckBox android:id="@+id/cb_music" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@id/cb_travel" android:layout_toRightOf="@+id/cb_travel" android:text="@string/music" android:textSize="18sp" /> <CheckBox android:id="@+id/cb_food" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@id/cb_music" android:layout_toRightOf="@id/cb_music" android:text="@string/food" android:textSize="18sp" /> <Button android:id="@+id/btn_submit" android:layout_width="80dp" android:layout_height="wrap_content" android:layout_below="@+id/tv_hobby" android:layout_marginLeft="60dp" android:layout_marginTop="20dp" android:background="#00aa00" android:onClick="doSubmit" android:text="@string/submit" android:textColor="#ffffff" /> <Button android:id="@+id/btn_reset" android:layout_width="80dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/tv_hobby" android:layout_marginRight="60dp" android:layout_marginTop="20dp" android:background="#00aa00" android:onClick="doReset" android:text="@string/reset" android:textColor="#ffffff" /> </RelativeLayout>3、修改字符串资源文件strings.xml
<resources> <string name="app_name">0403Demo</string> <string name="title">注册个人信息</string> <string name="username">用户名:</string> <string name="input_username">请输入用户名</string> <string name="password">密码:</string> <string name="input_password">请输入密码</string> <string name="phone">电话:</string> <string name="input_phone">请输入电话号码</string> <string name="email">邮箱:</string> <string name="input_email">请输入邮箱</string> <string name="gender">性别:</string> <string name="male">男</string> <string name="female">女</string> <string name="hobby">兴趣:</string> <string name="travel">旅行</string> <string name="music">音乐</string> <string name="food">美食</string> <string name="submit">提交</string> <string name="reset">重置</string> </resources>此时运行程序,看看效果:
4、主界面类MainActivity
package net.hw.ex0403; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends Activity { private EditText edtUsername; private EditText edtPassword; private EditText edtPhone; private EditText edtEmail; private RadioGroup rgGender; private RadioButton rbMale; private CheckBox cbTravel; private CheckBox cbMusic; private CheckBox cbFood; private String gender; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 利用布局资源文件设置用户界面 setContentView(R.layout.activity_main); // 通过资源标识获取控件实例 edtUsername = (EditText) findViewById(R.id.edt_username); edtPassword = (EditText) findViewById(R.id.edt_password); edtPhone = (EditText) findViewById(R.id.edt_phone); edtEmail = (EditText) findViewById(R.id.edt_email); rgGender = (RadioGroup) findViewById(R.id.rg_gender); rbMale = (RadioButton) findViewById(R.id.rb_male); cbTravel = (CheckBox) findViewById(R.id.cb_travel); cbMusic = (CheckBox) findViewById(R.id.cb_music); cbFood = (CheckBox) findViewById(R.id.cb_food); } /** * 提交事件处理方法 * * @param view */ public void doSubmit(View view) { /* 获取用户设置的信息 */ // 获取用户名 String username = edtUsername.getText().toString().trim(); // 获取密码 String password = edtPassword.getText().toString().trim(); // 获取电话 String phone = edtPhone.getText().toString().trim(); // 获取邮箱 String email = edtEmail.getText().toString().trim(); // 获取性别 gender = ((RadioButton) findViewById(rgGender.getCheckedRadioButtonId())).getText().toString(); // 获取兴趣 StringBuilder builder = new StringBuilder(); if (cbTravel.isChecked()) { builder.append(cbTravel.getText().toString() + " "); } if (cbMusic.isChecked()) { builder.append(cbMusic.getText().toString() + " "); } if (cbFood.isChecked()) { builder.append(cbFood.getText().toString()); } String hobby = builder.toString().trim(); // 在当前窗口显示注册信息 String regInfo = username + "\n" + password + "\n" + phone + "\n" + email + "\n" + gender + "\n" + hobby; Toast.makeText(this, regInfo, Toast.LENGTH_SHORT).show(); // 创建意图,从MainActivity跳转到ResultActivity Intent intent = new Intent(MainActivity.this, ResultActivity.class); // 创建数据包封装用户要提交的数据 Bundle data = new Bundle(); data.putString("username", username); data.putString("password", password); data.putString("phone", phone); data.putString("email", email); data.putString("gender", gender); data.putString("hobby", hobby); // 将数据包作为意图的附加数据 intent.putExtras(data); // 按意图启动组件 startActivity(intent); } /** * 重置事件处理方法 * * @param view */ public void doReset(View view) { edtUsername.setText(""); edtPassword.setText(""); edtPhone.setText(""); edtEmail.setText(""); rbMale.setChecked(true); cbTravel.setChecked(false); cbMusic.setChecked(false); cbFood.setChecked(false); } }四、课堂作业1、创建ResultActivity2、设计ResultActivity布局3、显示注册信息
相关文章推荐
- Java Web 2.2.3 案例——利用CSS对注册页面实现修饰(2)
- 利用线性布局和相对布局实现一个简单的页面
- Java Web 2.2.3 案例——利用CSS对注册页面实现修饰
- 利用线性布局和相对布局实现一个简单的页面并且使应用支持国际化语言
- 利用相对布局实现用户注册功能
- 【安卓开发】UI设计基础3:用相对布局RelativeLayout实现计算器
- 利用布局简单编写一个安卓手机信息页面
- css利用margin外部尺寸实现等高布局经典案例
- 安卓复杂滑动案例 自定义behavior源码分析 实现头布局图片的缩放透明度变化,RecycleView的滑动布局,坐标变化
- android之网格布局和线性布局实现注册页面
- 谈谈利用JavaScript结合相对单位rem实现自适应布局的简单而实用的方法
- 安卓复杂滑动案例 自定义behavior源码分析 实现头布局图片的缩放透明度变化,RecycleView的滑动布局,坐标变化
- 安卓开发中实现页面越界回弹和上下拉的刷新自定义动画的操作(TwinklingRefreshLayout布局的使用)
- <div+css页面布局课堂笔记>7---登录和注册界面的实现
- android之网格布局和线性布局实现注册页面
- android之网格布局和线性布局实现注册页面
- 【干货】利用MVC5+EF6搭建博客系统(四)(上)前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- 利用JQuery实现注册页面的验证功能
- 安卓布局——注册页面
- 安卓案例:网格布局实现计算器界面