上一篇《是男人就下100层【第一层】——高仿微信界面(2)》中实现了注册登录界面,这一篇来看看具体的登录界面实现,先来看看界面效果。
登录界面布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#eee" android:orientation="vertical" android:gravity="center_horizontal"> <RelativeLayout android:id="@+id/login_top_layout" android:layout_width="fill_parent" android:layout_height="45dp" android:layout_alignParentTop="true" android:background="@drawable/title_bar"> <Button android:id="@+id/login_reback_btn" android:layout_width="70dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="返回" android:textSize="14sp" android:textColor="#fff" android:onClick="login_back" android:background="@drawable/title_btn_back"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="20sp" android:textStyle="bold" android:textColor="#ffffff" android:text="登录" /> </RelativeLayout> <EditText android:id="@+id/login_user_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/login_top_layout" android:textColor="#000" android:textSize="15sp" android:layout_marginTop="25dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:singleLine="true" android:background="@drawable/login_editbox" android:hint="QQ号/微信号/手机号(请输入buaa)"/> <EditText android:id="@+id/login_passwd_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/login_user_edit" android:textColor="#000" android:textSize="15sp" android:layout_marginTop="25dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:background="@drawable/login_editbox" android:password="true" android:singleLine="true" android:hint="密码(请输入123)"/> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_below="@+id/login_passwd_edit" > <Button android:id="@+id/forget_passwd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="23dp" android:layout_marginTop="5dp" android:text="忘记密码?" android:textSize="16sp" android:textColor="#00f" android:background="#0000" android:onClick="login_pw" /> <Button android:id="@+id/login_login_btn" android:layout_width="90dp" android:layout_height="40dp" android:layout_marginRight="20dp" android:layout_alignParentRight="true" android:text="登录" android:background="@drawable/btn_style_green" android:textColor="#ffffff" android:textSize="18sp" android:onClick="login_mainweixin" /> </RelativeLayout> </RelativeLayout>在上面的界面中需要注意的是“返回”按钮的背景资源文件
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/mm_title_back_focused" /> <item android:state_pressed="true" android:drawable="@drawable/mm_title_back_pressed" /> <item android:state_selected="true" android:drawable="@drawable/mm_title_back_pressed" /> <item android:drawable="@drawable/mm_title_back_normal" /> </selector>上一篇中已经见过,这里就不啰嗦了
输入框的背景布局文件
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/login_edit_pressed" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/login_edit_pressed" /> <item android:state_focused="false" android:drawable="@drawable/login_edit_normal" /> </selector>按下获得焦点和失去焦点的背景不同
接下来处理数据校验和跳转
public void login_mainweixin(View v) { if ("dawanganban".equals(mUser.getText().toString()) && "123456".equals(mPassword.getText().toString())) // 判断 帐号和密码 { Intent intent = new Intent(); intent.setClass(Login.this, LoadActivity.class); startActivity(intent); // Toast.makeText(getApplicationContext(), "登录成功", // Toast.LENGTH_SHORT).show(); } else if ("".equals(mUser.getText().toString()) || "".equals(mPassword.getText().toString())) // 判断 帐号和密码 { new AlertDialog.Builder(Login.this) .setIcon( getResources().getDrawable( R.drawable.login_error_icon)) .setTitle("登录错误").setMessage("微信帐号或者密码不能为空,\n请输入后再登录!") .create().show(); } else { new AlertDialog.Builder(Login.this) .setIcon( getResources().getDrawable( R.drawable.login_error_icon)) .setTitle("登录失败").setMessage("微信帐号或者密码不正确,\n请检查后重新输入!") .create().show(); } }点忘记密码就不处理了,直接跳到一个页面吧
public void login_pw(View v) { // 忘记密码按钮 Uri uri = Uri.parse("http://blog.csdn.net/dawanganban"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }还有一个返回按钮,直接关闭当前Activity
public void login_back(View v) { // 标题栏 返回按钮 this.finish(); }运行结果:
源代码下载:http://download.csdn.net/detail/lxq_xsyu/6966767