您的位置:首页 > 其它

QQ登陆界面

2011-09-01 15:42 351 查看
2011-06-01 10:2536人阅读评论(0)收藏举报

QQ登陆界面的布局文件源代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/default_bg"

>

<LinearLayout

android:id="@+id/linearLayout01"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content"

>

<RelativeLayout

android:id="@+id/relativeLayout"

android:background="@drawable/login_back"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="60.0dip"

android:layout_marginLeft="15.0dip"

android:layout_marginRight="15.0dip"

android:paddingTop="20.0dip"

android:paddingLeft="10.0dip"

android:paddingRight="10.0dip"

>

<ImageView

android:id="@+id/imageView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/qq_layouts"

/>

<EditText

android:id="@+id/qq_acount"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingLeft="45.0dip"

android:paddingRight="35.0dip"

android:layout_toRightOf="@id/imageView01"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:inputType="number"

android:hint="@string/input_acount"

android:textSize="15sp"

android:background="@drawable/input"

/>

<TextView

android:text="@string/acount"

android:gravity="center"

android:paddingLeft="8dip"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignTop="@id/qq_acount"

android:layout_alignLeft="@id/qq_acount"

android:layout_alignBottom="@id/qq_acount"

/>

<ImageButton

android:id="@+id/imageButton01"

android:clickable="true"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignRight="@id/qq_acount"

android:layout_alignTop="@id/qq_acount"

android:layout_alignBottom="@id/qq_acount"

android:background="@drawable/more_selected"

/>

<EditText

android:id="@+id/qq_password"

android:inputType="textPassword"

android:paddingLeft="45dip"

android:layout_below="@id/qq_acount"

android:layout_alignParentRight="true"

android:layout_alignLeft="@id/qq_acount"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/input"

/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@id/qq_password"

android:layout_alignTop="@id/qq_password"

android:layout_alignBottom="@id/qq_password"

android:paddingLeft="8dip"

android:gravity="center"

android:text="@string/password"

android:textSize="15sp"

/>

<CheckBox

android:id="@+id/checkBox01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/imageView01"

android:layout_alignParentLeft="true"

android:layout_marginTop="15.0dip"

android:text="@string/rememberPassword"

android:checked="true"

android:button="@drawable/check"

/>

<CheckBox

android:id="@+id/checkBox02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignTop="@id/checkBox01"

android:layout_alignParentRight="true"

android:layout_marginRight="15.0dip"

android:text="@string/autoLogin"

android:checked="false"

android:button="@drawable/check"

/>

<Button

android:id="@+id/btn01"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@id/checkBox01"

android:layout_marginLeft="50.0dip"

android:layout_marginRight="50.0dip"

android:text="@string/login"

android:textSize="15sp"

/>

</RelativeLayout>

<TableLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="20.0dip"

android:layout_marginRight="20.0dip"

android:stretchColumns="1"

>

<TableRow>

<CheckBox

android:id="@+id/checkBox03"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/unvisibleLogin"

android:button="@drawable/check"

/>

<CheckBox

android:id="@+id/checkBox04"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/openVibration"

android:button="@drawable/check"

android:layout_gravity="right"

/>

</TableRow>

<TableRow>

<CheckBox

android:id="@+id/checkBox05"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/receiveMsg"

android:button="@drawable/check"

/>

<CheckBox

android:id="@+id/checkBox06"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="静音登陆"

android:layout_gravity="right"

android:button="@drawable/check"

/>

</TableRow>

</TableLayout>

</LinearLayout>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10.0dip"

android:background="@drawable/bottom"

>

<ImageButton

android:id="@+id/imageButton02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/option"

/>

</LinearLayout>

</LinearLayout>

其中用到的图片需要放在drawable文件夹下。strings.xml文件内容:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, QQLoginActivity!</string>

<string name="app_name">QQLogin2</string>

<string name="input_acount">请输入账号</string>

<string name="acount">账号</string>

<string name="rememberPassword">记住密码</string>

<string name="autoLogin">自动登陆</string>

<string name="password">密码</string>

<string name="login">登陆</string>

<string name="unvisibleLogin">隐身登陆</string>

<string name="openVibration">开启振动</string>

<string name="receiveMsg">接收群消息</string>

</resources>

如果要保存上次登陆的QQ账号可使用类SharedPreferences实现,大概代码如下:

//文件QQLoginActivity.java

package com.qqlogin2;

import java.util.LinkedHashSet;

import java.util.Set;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.view.Gravity;

import android.view.KeyEvent;

import android.view.View;

import android.view.ViewGroup;

import android.view.View.OnClickListener;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.PopupWindow;

import android.widget.Toast;

public class QQLoginActivity extends Activity {

private CheckBox rememberPassword ;

private EditText etAcount;

private EditText etPassword;

private ImageView option;

private PopupWindow pop;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

rememberPassword = (CheckBox) findViewById(R.id.checkBox01);

etAcount = (EditText) findViewById(R.id.qq_acount);

etPassword = (EditText) findViewById(R.id.qq_password);

option = (ImageView) findViewById(R.id.imageButton02);

init();

initPop();

option.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(!pop.isShowing()){

pop.showAtLocation(v, Gravity.BOTTOM, 0, 50);

}else{

pop.dismiss();

}

}

});

/* dropdown.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(QQLoginActivity.this,"dropdown", Toast.LENGTH_SHORT).show();

AlertDialog.Builder builder = new AlertDialog.Builder(QQLoginActivity.this);

builder.setTitle("choose acount");

final String[] acounts = null;

builder.setSingleChoiceItems(acounts, -1, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

String acountSpec = acounts[which];

etAcount.setText(acountSpec);

dialog.dismiss();

}

});

builder.create().show();

}});*/

}

private void initPop(){

View view = getLayoutInflater().inflate(R.layout.pop, null);

pop = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

ImageButton quit = (ImageButton) view.findViewById(R.id.quit);

quit.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(QQLoginActivity.this, "quit", Toast.LENGTH_SHORT).show();

finish();

}

});

}

protected void init() {

// TODO Auto-generated method stub

super.onResume();

SharedPreferences preferences = getSharedPreferences("qq", Context.MODE_WORLD_READABLE);

String acount = preferences.getString("acount", "");

String password = preferences.getString("password", "");

boolean isRemember = preferences.getBoolean("isRemember", true);

rememberPassword.setChecked(isRemember);

if(!acount.equals("")){

etAcount.setText(acount);

}

if(!password.equals("")){

etPassword.setText(password);

}

}

@Override

protected void onStop() {

// TODO Auto-generated method stub

super.onStop();

Set<String> stringSet = new LinkedHashSet<String>();

SharedPreferences preferences = getSharedPreferences("qq", Context.MODE_PRIVATE);

Editor editor = preferences.edit();

boolean isChecked = rememberPassword.isChecked();

editor.putBoolean("isRemember", isChecked);

String acount = etAcount.getText().toString().trim();

if(!acount.equals("") ){

editor.putString("acount", acount);

stringSet.add(acount);

if(rememberPassword.isChecked()){

String password = etPassword.getText().toString();

editor.putString("password", password);

}

else{

editor.putString("password", "");

}

editor.commit();

}

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

if(keyCode==KeyEvent.KEYCODE_MENU){

if(pop.isShowing()){

pop.dismiss();

}else{

pop.showAtLocation(option, Gravity.BOTTOM, 0, 50);

}

return true;

}

else if(keyCode==KeyEvent.KEYCODE_BACK){

if(pop.isShowing()){

pop.dismiss();

}

else{

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("确定要退出程序吗");

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

finish();

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.dismiss();

}

});

builder.show();

}

return true;

}

else{

return super.onKeyDown(keyCode, event);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: