android登录功能
界面
activity_login.xml文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 3 这里把整个Activity_login的布局设置成相对布局, 4 因为相对布局比较灵活,想咋放咋放 5 看代码,上来就是三个 xmlns,xml这仨字母认识,ns这俩字母是namespace的缩写 6 正是有了这些namespace的声明,才能在不同的xml中使用相同的id名, 7 而不会造成使用时的冲突 8 --> 9 <RelativeLayout 10 xmlns:android="http://schemas.android.com/apk/res/android" 11 xmlns:app="http://schemas.android.com/apk/res-auto" 12 xmlns:tools="http://schemas.android.com/tools" 13 android:layout_width="match_parent" 14 android:layout_height="match_parent" 15 android:background="#eeeeee" 16 tools:context=".loginActivity"> 17 <!-- 18 整体是相对布局, 19 在整体上方放三个东西,这三个东西也是相对布局 20 合在一起称为一个top 21 一个返回箭头 ← 22 两个文字显示 登录 注册 23 也就是说 login界面的上方长这个样子 24 ← 登录 注册 25 下面是具体代码 26 --> 27 <RelativeLayout 28 android:id="@+id/rl_loginactivity_top" 29 android:layout_width="match_parent" 30 android:layout_height="70dp" 31 android:background="@color/color_minefragment_top" > 32 <ImageView 33 android:id="@+id/iv_loginactivity_back" 34 android:layout_width="30dp" 35 android:layout_height="30dp" 36 android:background="@drawable/ic_left_back" 37 android:layout_centerVertical="true" 38 android:layout_marginLeft="10dp" 39 android:clickable="true" 40 android:onClick="onClick" 41 /> 42 43 <TextView 44 android:id="@+id/tv_loginactivity_login" 45 android:layout_width="wrap_content" 46 android:layout_height="wrap_content" 47 android:text="登录" 48 android:textColor="#fff" 49 android:textSize="20dp" 50 android:layout_toRightOf="@+id/iv_loginactivity_back" 51 android:layout_centerVertical="true" 52 android:layout_marginLeft="20dp" 53 /> 54 <TextView 55 android:id="@+id/tv_loginactivity_register" 56 android:layout_width="wrap_content" 57 android:layout_height="wrap_content" 58 android:text="注册" 59 android:textColor="#fff" 60 android:textSize="20dp" 61 android:layout_centerVertical="true" 62 android:layout_alignParentRight="true" 63 android:layout_marginRight="30dp" 64 android:clickable="true" 65 android:onClick="onClick" 66 /> 67 </RelativeLayout> 68 <!-- 69 顶部三个东西摆放好之后 70 就该来摆放登录时候的两个文本输入框了 71 用户名 72 密码 73 这个明显的是LinerLayout 74 LinerLayout必须指明orientation 方向 要么垂直vertical 要么水平 horizontal 75 这里显然是垂直vertical 76 --> 77 <LinearLayout 78 android:id="@+id/ll_loginactivity_two" 79 android:layout_width="match_parent" 80 android:layout_height="wrap_content" 81 android:orientation="vertical" 82 android:layout_below="@+id/rl_loginactivity_top" 83 android:layout_marginTop="10dp" 84 android:layout_marginLeft="5dp" 85 android:layout_marginRight="5dp" 86 > 87 <LinearLayout 88 android:layout_width="match_parent" 89 android:layout_height="wrap_content" 90 android:orientation="horizontal"> 91 <TextView 92 android:id="@+id/tv_loginactivity_username" 93 android:layout_width="wrap_content" 94 android:layout_height="wrap_content" 95 android:text="用户名:"/> 96 <EditText 97 android:id="@+id/et_loginactivity_username" 98 android:layout_width="match_parent" 99 android:layout_height="wrap_content" 100 android:hint="手机号/邮箱/用户名"/> 101 </LinearLayout> 102 <LinearLayout 103 android:layout_width="match_parent" 104 android:layout_height="wrap_content" 105 android:orientation="horizontal"> 106 <TextView 107 android:id="@+id/tv_loginactivity_password" 108 android:layout_width="wrap_content" 109 android:layout_height="wrap_content" 110 android:text="密 码:"/> 111 <EditText 112 android:id="@+id/et_loginactivity_password" 113 android:layout_width="match_parent" 114 android:layout_height="wrap_content" 115 android:hint="登录密码" 116 android:inputType="textPassword"/> 117 </LinearLayout> 118 </LinearLayout> 119 <!-- 120 填好用户名、密码后,就该点击登录按钮了 121 注意最后有一句: android:onClick="onClick" 122 这是应用了一个开源库,详细信息在loginActivity.java 中有注释 123 --> 124 <Button 125 android:id="@+id/bt_loginactivity_login" 126 android:layout_width="match_parent" 127 android:layout_height="wrap_content" 128 android:layout_below="@+id/ll_loginactivity_two" 129 android:layout_marginTop="10dp" 130 android:layout_marginLeft="5dp" 131 android:layout_marginRight="5dp" 132 android:background="@drawable/selector_loginactivity_button" 133 android:text="登录" 134 android:textColor="#fff" 135 android:gravity="center" 136 android:onClick="onClick" 137 /> 138 <!-- 139 为了App的人性化, 140 想到有以下三种无法密码登录的异常处理情况 141 一、密码错误,重新输入 142 二、忘记密码,重新修改密码 143 三、不想注册,通过短信验证登录 144 密码输错了,重新输入,这个没啥说的 145 忘记密码应该以一个可以点击的文字出现在登录按钮的左下方 146 短信验证登录也以一个可以点击的文字出现在登录按钮的右下方 147 --> 148 <TextView 149 android:id="@+id/tv_loginactivity_forget" 150 android:text="忘记密码" 151 android:textColor="#f00" 152 android:layout_width="wrap_content" 153 android:layout_height="wrap_content" 154 android:layout_marginLeft="50dp" 155 android:layout_marginVertical="50dp" 156 android:layout_below="@+id/bt_loginactivity_login" 157 android:layout_alignLeft="@+id/bt_loginactivity_login" 158 /> 159 <TextView 160 android:id="@+id/tv_loginactivity_check" 161 android:layout_width="wrap_content" 162 android:layout_height="wrap_content" 163 android:text="短信验证码登录" 164 android:textColor="#f00" 165 android:layout_marginRight="50dp" 166 android:layout_marginVertical="50dp" 167 android:layout_below="@+id/bt_loginactivity_login" 168 android:layout_alignRight="@+id/bt_loginactivity_login" 169 /> 170 <!-- 171 当然,QQ、微信、微博、GitHub...在当今如此火热 172 登录的时候完全可以免注册 173 直接使用第三方登录 174 --> 175 <TextView 176 android:id="@+id/tv_loginactivity_else" 177 android:layout_width="wrap_content" 178 android:layout_height="wrap_content" 179 android:layout_below="@+id/tv_loginactivity_forget" 180 android:layout_centerInParent="true" 181 android:layout_marginVertical="30dp" 182 183 android:text="---------------------------第三方登录---------------------------" 184 android:textColor="#B3B3B3" 185 android:gravity="center" 186 /> 187 </RelativeLayout>
界面效果: