安卓开发学习笔记(七):仿写腾讯QQ登录注册界面
这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的xml布局模式。
废话不多说,直接上代码:
一.activity.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg2" > <!--头部内容--> <relativelayout android:layout_width="match_parent" android:layout_height="160dp" android:padding="16dp" android:layout_margin="0dp" > </relativelayout> <!--输入框--> <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:layout_margin="0dp" > <edittext android:id="@+id/account" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginbottom="16dp" android:hint="qq号/密码/邮箱"/> /> <edittext android:layout_below="@id/account" android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:password="true" android:hint="密码"/> /> </relativelayout> <relativelayout android:layout_width="match_parent" android:layout_height="33dp" android:padding="0dp" android:layout_margin="0dp" > <checkbox android:id="@+id/remember_pass" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住密码"/> </relativelayout> <!--密码功能--> <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp"> <button android:id="@+id/login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" android:textcolor="#fff" android:background="#008cc9"/> <button android:id="@+id/forget_pwd" android:layout_below="@id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:textcolor="#2999ce" android:gravity="start" android:layout_margintop="16dp" android:textsize="16dp" android:text="忘记密码?"/> <button android:id="@+id/register" android:layout_below="@id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:textcolor="#2999ce" android:gravity="end" android:text="新用户注册" android:layout_margintop="16dp" android:textsize="16dp" android:layout_alignparentright="true"/> </relativelayout> <relativelayout android:layout_width="match_parent" android:layout_height="80dp" android:padding="16dp" android:layout_margin="0dp"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" /> </relativelayout> </linearlayout>
二》main.java
package com.example.lenovo.fqq; import android.content.intent; import android.support.v7.app.actionbar; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.button; public class main3activity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main3); button button=(button) findviewbyid(r.id.login); button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent intent=new intent(main3activity.this,main2activity.class); startactivity(intent); } }); actionbar a=getsupportactionbar(); if(a!=null) { a.hide(); } } }
其中的代码:
actionbar a=getsupportactionbar(); if(a!=null) { a.hide(); } } }
主要是为了能够将我们的标题栏隐藏,不然的话就会显示出标题栏,达不到我们仿写的效果了。
button button=(button) findviewbyid(r.id.login); button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent intent=new intent(main3activity.this,main2activity.class); startactivity(intent); } });
上面这一段代码主要是用到了活动的跳转,不然登录是登录不进去的!这里因为我们直接使用了java当中活动的跳转。点击登录就会立刻跳转到下一个界面进行登录,当然
textview简介:
textview,是view的直接子类。它是一个文本显示控件,提供了基本的显示文本的功能,并且是大部分ui控件的父类,因为大部分ui控件都需要展示信息。
如果仅仅是展示文本,那么textview的作用就太小了,所以它还预定义了一些类似于html的标签,通过这些标签可以使textview控件显示不同的颜色、大小、字体、图片、链接。这些html标签都需要android.text.html类的支持,但是并不包括所有的html标签。
常用的可以再textview中设定的标签有:
- <font>:设置颜色和字体。
- <big>:设置字体大号
- <small>:设置字体小号
- <i>\<b>:斜体\粗体
- <a>:连接网址
- <img>:图片
使用这些标签可以用html.fromhtml方法将这些标签的字符串转换成charsequence接口,然后在textview.settext()中进行设置。如果需要响应设置的html标签进行响应,需要设置textview.setmovementmethod(linkmovementmethod.getinstance())。
charsequence为接口类型,大家可能对其有点陌生,但是它的子类肯定会让大家有熟悉的感觉,string、stringbuffer、stringbuilder、spannablestring、spannablestringbuilder都是其子类,它包括了字符串的所有类,因为面向对象的多态性,在这里把他理解成字符串类的抽象即可。
除了使用html标签的方式设定显示文本中的url地址、邮箱地址、电话等产生超链接出发相应的服务,可以使用android:autolink属性来设置,以下是android:autolink属性的介绍:
- none:默认的,不匹配任何连接。
- web:网址。
- email:邮箱。
- phone:电话号码。
- map:匹配映射网址。
- all:匹配所有连接。
最终搞定,实现具体效果如下:
上一篇: 【Oracle学习笔记】索引
下一篇: vue 项目如何引入微信sdk接口的方法