国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android QQ登錄界面繪制代碼

2019-12-12 05:26:04
字體:
來源:轉載
供稿:網友

先看看效果圖:

首先過程中碰到的幾個問題: 

1、對 EditText 進行自定義背景 

2、運行時自動 EditText 自動獲得焦點 

3、在獲得焦點時即清空 hint ,而不是輸入后清空

 4、清空按鈕的出現時機(在得到焦點并且有輸入內容時) 

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

以下是代碼: 

布局 fragment_main(問題2)

<!-- android:focusable="true"    android:focusableInTouchMode="true"    把EditText默認的行為截斷了! --><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">新用戶注冊</string>  <string name="inaccount">QQ號/手機號/郵箱</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);    // 對EditText進行焦點變更監聽    editText1.setOnFocusChangeListener(new EditTextListener(clearButton1));    editText2.setOnFocusChangeListener(new EditTextListener(clearButton2));    // 對清空按鈕進行點擊監聽    clearButton1.setOnClickListener(new ClearButtonListener());    clearButton2.setOnClickListener(new ClearButtonListener());    // 對EditText進行編輯監聽    editText1.addTextChangedListener(new MyEditTextWatcher(editText1));    editText2.addTextChangedListener(new MyEditTextWatcher(editText2));  }  /**   * 對EditText的內容進行實時監控   *    * @author Auser   *    */  class MyEditTextWatcher implements TextWatcher {    private CharSequence temp;    private EditText editText;    public MyEditTextWatcher(EditText editText) {      this.editText = editText;    }    @Override    // int start開始的位置, int count被改變的舊內容數, int after改變后的內容數量    public void beforeTextChanged(CharSequence s, int start, int count,        int after) {      // 這里的s表示改變之前的內容,通常start和count組合,可以在s中讀取本次改變字段中被改變的內容。而after表示改變后新的內容的數量。    }    @Override    // int start開始的位置, int before改變前的內容數量, int count新增量    public void onTextChanged(CharSequence s, int start, int before,        int count) {      // 這里的s表示改變之后的內容,通常start和count組合,可以在s中讀取本次改變字段中新的內容。而before表示被改變的內容的數量。      temp = s;    }    @Override    // 表示最終內容    public void afterTextChanged(Editable s) {      if (temp.length() > 0) {        // 設置清空按鈕為可見        if (editText == editText1) {          clearButton1.setVisibility(View.VISIBLE);        } else if (editText == editText2) {          clearButton2.setVisibility(View.VISIBLE);        }      } else {        // 設置清空按鈕不可見        if (editText == editText1) {          clearButton1.setVisibility(View.INVISIBLE);        } else if (editText == editText2) {          clearButton2.setVisibility(View.INVISIBLE);        }      }    }  }  /**   * 清空按鈕點擊事件   *    * @author   *    */  class ClearButtonListener implements OnClickListener {    @Override    public void onClick(View view) {      if (view == clearButton1) {        editText1.setText("");      } else if (view == clearButton2) {        editText2.setText("");      }    }  }  /**   * 焦點變更事件   *    * @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) {        // 當獲取焦點時如果內容不為空則清空按鈕可見        if (!textView.getText().toString().equals("")) {          clear.setVisibility(View.VISIBLE);        }        // if (textView == editText2) {        // // 設置輸入格式為不可見的密碼格式        // textView.setInputType(InputType.TYPE_CLASS_TEXT        // | InputType.TYPE_TEXT_VARIATION_PASSWORD);        // }        hint = textView.getHint().toString();        // 給TextView添加額外的數據        textView.setTag(hint);        textView.setHint("");      } else {        // 當失去焦點時清空按鈕不可見        clear.setVisibility(View.INVISIBLE);        // if (textView == editText2) {        // // 設置輸入格式為可見的密碼格式        // textView.setInputType(InputType.TYPE_CLASS_TEXT        // | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);        // }        // 取出之前添加的額外數據        hint = textView.getTag().toString();        textView.setHint(hint);      }    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂尔多斯市| 珠海市| 迁西县| 英超| 卓尼县| 乌拉特中旗| 公安县| 清苑县| 柘荣县| 沙坪坝区| 鹤岗市| 荆州市| 呼图壁县| 芮城县| 山丹县| 双流县| 麻城市| 阜阳市| 凌源市| 平和县| 大厂| 同仁县| 海口市| 内乡县| 仁化县| 达拉特旗| 上杭县| 额济纳旗| 延寿县| 自贡市| 建平县| 开江县| 屯门区| 航空| 高淳县| 那坡县| 高唐县| 黔江区| 馆陶县| 望谟县| 望谟县|