欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

安卓开发学习笔记(七):仿写腾讯QQ登录注册界面

程序员文章站 2022-07-28 21:16:12
这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式。 废话不多说,直接上代码:一.activity.xml 二》main.java 其中的代码: TextView简介: TextView,是View的 ......

这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的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:匹配所有连接。
 

 

最终搞定,实现具体效果如下:

安卓开发学习笔记(七):仿写腾讯QQ登录注册界面