欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android QQ登錄界面繪制代碼

 更新時(shí)間:2020年08月20日 14:33:11   作者:西門吃雪  
這篇文章主要為大家詳細(xì)介紹了Android QQ登錄界面繪制代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android QQ登錄界面繪制的具體代碼,供大家參考,具體內(nèi)容如下

先看看效果圖:

首先過程中碰到的幾個(gè)問題:

1、對(duì) EditText 進(jìn)行自定義背景

2、運(yùn)行時(shí)自動(dòng) EditText 自動(dòng)獲得焦點(diǎn)

3、在獲得焦點(diǎn)時(shí)即清空 hint ,而不是輸入后清空

4、清空按鈕的出現(xiàn)時(shí)機(jī)(在得到焦點(diǎn)并且有輸入內(nèi)容時(shí))

---  這些問題都有一一解決 ---

以下是代碼:

布局 fragment_main(問題2)

<!-- android:focusable="true" 
 android:focusableInTouchMode="true" 
 把EditText默認(rèn)的行為截?cái)嗔耍?-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#ECEDF1"
 android:focusable="true"
 android:focusableInTouchMode="true"
 tools:context="com.dragon.android.qqlogin.MainActivity$PlaceholderFragment" >

 <ImageView
 android:id="@+id/imageView1"
 android:layout_width="70dp"
 android:layout_height="70dp"
 android:layout_centerHorizontal="true"
 android:layout_marginBottom="5dp"
 android:layout_marginTop="40dp"
 android:src="@drawable/a" /> 

 <EditText
 android:id="@+id/editText1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_below="@id/imageView1"
 android:ems="10"
 android:background="@drawable/bg_edittext"
 android:inputType="textPersonName"
 android:gravity="center"
 android:textColor="#6A6A6C"
 android:hint="@string/inaccount"
 android:textColorHint="#ECEDDD">
 </EditText>

 <EditText
 android:id="@+id/editText2"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_below="@id/editText1"
 android:ems="10"
 android:background="@drawable/bg_edittext"
 android:inputType="textPassword"
 android:gravity="center"
 android:textColor="#6A6A6C"
 android:hint="@string/inpwd"
 android:textColorHint="#ECEDDD" >
 </EditText>

 <Button
 android:id="@+id/button1"
 android:layout_width="match_parent"
 android:layout_height="40dp"
 android:layout_below="@id/editText2"
 android:layout_marginLeft="20dp"
 android:layout_marginRight="20dp"
 android:layout_marginTop="10dp"
 android:background="@drawable/bg_button"
 android:text="@string/button"
 android:gravity="center"
 android:textColor="#F9FAFB" />

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 android:padding="10dp" >

 <TextView
  android:id="@+id/textView2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:gravity="center"
  android:text="@string/faillogin"
  android:textColor="#0EB1EF" />

 <TextView
  android:id="@+id/textView3"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:gravity="right"
  android:text="@string/regist"
  android:textColor="#0EB1EF" /> 
 </LinearLayout>

 <Button
 android:id="@+id/button2"
 android:layout_width="16dp"
 android:layout_height="16dp"
 android:layout_alignTop="@id/editText1"
 android:layout_marginTop="15dp"
 android:layout_alignParentRight="true"
 android:layout_marginRight="10dp"
 android:background="@drawable/clear"
 android:visibility="invisible" />

 <Button
 android:id="@+id/button3"
 android:layout_width="16dp"
 android:layout_height="16dp"
 android:layout_alignTop="@id/editText2"
 android:layout_marginTop="15dp"
 android:layout_alignLeft="@+id/button2"
 android:background="@drawable/clear"
 android:visibility="invisible" />

</RelativeLayout>

Button 和 EditText 的背景(問題1)

1.bg_button

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
 
 <stroke android:width="1px" android:color="#00ACED" />
 
 <solid android:color="#00ACED" />
 
 <corners android:radius="10dp" />
 
</shape>

2.bg_edittext

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
 
 <stroke android:width="1px" android:color="#ECEDF1" />
 
 <solid android:color="#F9FAFB" />
 
 <corners android:radius="10dp" />
 
 <padding 
 android:top="10dp" 
 android:bottom="10dp"/>

</shape>

3.strings

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

 <string name="app_name">qqloginnew</string>
 <string name="action_settings">Settings</string>
 <string name="button">登錄</string>
 <string name="faillogin">無法登錄?</string>
 <string name="regist">新用戶注冊(cè)</string>
 <string name="inaccount">QQ號(hào)/手機(jī)號(hào)/郵箱</string>
 <string name="inpwd">密碼</string>
 <string name="sucess">登錄成功</string>

</resources>

MainActivity (問題3、4.....)

package com.dragon.android.qqloginnew;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
 private EditText editText1;
 private EditText editText2;
 // private Button button;
 private Button clearButton1;
 private Button clearButton2;

 // 得到strings中的屬性
 // private String string2 = getResources().getString(R.string.inaccount);

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.fragment_main);

 editText1 = (EditText) findViewById(R.id.editText1);
 editText2 = (EditText) findViewById(R.id.editText2);

 // button = (Button) findViewById(R.id.button1);
 clearButton1 = (Button) findViewById(R.id.button2);
 clearButton2 = (Button) findViewById(R.id.button3);

 // 對(duì)EditText進(jìn)行焦點(diǎn)變更監(jiān)聽
 editText1.setOnFocusChangeListener(new EditTextListener(clearButton1));
 editText2.setOnFocusChangeListener(new EditTextListener(clearButton2));

 // 對(duì)清空按鈕進(jìn)行點(diǎn)擊監(jiān)聽
 clearButton1.setOnClickListener(new ClearButtonListener());
 clearButton2.setOnClickListener(new ClearButtonListener());

 // 對(duì)EditText進(jìn)行編輯監(jiān)聽
 editText1.addTextChangedListener(new MyEditTextWatcher(editText1));
 editText2.addTextChangedListener(new MyEditTextWatcher(editText2));
 }

 /**
 * 對(duì)EditText的內(nèi)容進(jìn)行實(shí)時(shí)監(jiān)控
 * 
 * @author Auser
 * 
 */
 class MyEditTextWatcher implements TextWatcher {
 private CharSequence temp;
 private EditText editText;

 public MyEditTextWatcher(EditText editText) {
  this.editText = editText;
 }

 @Override
 // int start開始的位置, int count被改變的舊內(nèi)容數(shù), int after改變后的內(nèi)容數(shù)量
 public void beforeTextChanged(CharSequence s, int start, int count,
  int after) {
  // 這里的s表示改變之前的內(nèi)容,通常start和count組合,可以在s中讀取本次改變字段中被改變的內(nèi)容。而after表示改變后新的內(nèi)容的數(shù)量。
 }

 @Override
 // int start開始的位置, int before改變前的內(nèi)容數(shù)量, int count新增量
 public void onTextChanged(CharSequence s, int start, int before,
  int count) {
  // 這里的s表示改變之后的內(nèi)容,通常start和count組合,可以在s中讀取本次改變字段中新的內(nèi)容。而before表示被改變的內(nèi)容的數(shù)量。
  temp = s;
 }

 @Override
 // 表示最終內(nèi)容
 public void afterTextChanged(Editable s) {
  if (temp.length() > 0) {
  // 設(shè)置清空按鈕為可見
  if (editText == editText1) {
   clearButton1.setVisibility(View.VISIBLE);
  } else if (editText == editText2) {
   clearButton2.setVisibility(View.VISIBLE);
  }
  } else {
  // 設(shè)置清空按鈕不可見
  if (editText == editText1) {
   clearButton1.setVisibility(View.INVISIBLE);
  } else if (editText == editText2) {
   clearButton2.setVisibility(View.INVISIBLE);
  }
  }
 }
 }

 /**
 * 清空按鈕點(diǎn)擊事件
 * 
 * @author
 * 
 */
 class ClearButtonListener implements OnClickListener {

 @Override
 public void onClick(View view) {
  if (view == clearButton1) {
  editText1.setText("");
  } else if (view == clearButton2) {
  editText2.setText("");
  }
 }
 }

 /**
 * 焦點(diǎn)變更事件
 * 
 * @author Auser
 * 
 */
 class EditTextListener implements OnFocusChangeListener {
 private Button clear;

 public EditTextListener(Button clear) {
  this.clear = clear;
 }

 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  EditText textView = (EditText) v;
  String hint;
  if (hasFocus) {
  // 當(dāng)獲取焦點(diǎn)時(shí)如果內(nèi)容不為空則清空按鈕可見
  if (!textView.getText().toString().equals("")) {
   clear.setVisibility(View.VISIBLE);
  }
  // if (textView == editText2) {
  // // 設(shè)置輸入格式為不可見的密碼格式
  // textView.setInputType(InputType.TYPE_CLASS_TEXT
  // | InputType.TYPE_TEXT_VARIATION_PASSWORD);
  // }
  hint = textView.getHint().toString();
  // 給TextView添加額外的數(shù)據(jù)
  textView.setTag(hint);
  textView.setHint("");
  } else {
  // 當(dāng)失去焦點(diǎn)時(shí)清空按鈕不可見
  clear.setVisibility(View.INVISIBLE);
  // if (textView == editText2) {
  // // 設(shè)置輸入格式為可見的密碼格式
  // textView.setInputType(InputType.TYPE_CLASS_TEXT
  // | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
  // }
  // 取出之前添加的額外數(shù)據(jù)
  hint = textView.getTag().toString();
  textView.setHint(hint);
  }
 }
 }
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論