溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

制作Android登錄頁(yè)面的方法

發(fā)布時(shí)間:2020-08-15 09:43:23 來(lái)源:億速云 閱讀:195 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹制作Android登錄頁(yè)面的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

效果演示

制作Android登錄頁(yè)面的方法
制作Android登錄頁(yè)面的方法

密碼顯示與隱藏

方法一

if(status){
 etPassword.setInputType(InputType.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_NORMAL);		//顯示文本
 status = false;
}else {
 etPassword.setInputType(InputType.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD);	//隱藏文本
 status = true;
}
etPassword.setSelection(etPassword.getText().toString().length());	//光標(biāo)調(diào)整到文本末端

方法二

if (status) {
 etPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());	//顯示文本
 status = false;
} else {
 etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());		//隱藏文本
 status = true;
}

EditText 圖標(biāo)切換

實(shí)現(xiàn)方法

//編輯框點(diǎn)擊事件,取 icon 點(diǎn)擊位置設(shè)置點(diǎn)擊事件
etPassword.setOnTouchListener(new View.OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			// 長(zhǎng)度為4的數(shù)組,分別表示左、右、上、下四個(gè) icon
			Drawable drawable = etPassword.getCompoundDrawables()[2];
			if (drawable == null) //如果右邊沒(méi)有圖片,不再處理
				return false;
			if (event.getAction() != MotionEvent.ACTION_UP)	//如果不是按下事件,不再處理
				return false;
			if (event.getX() > etPassword.getWidth() - etPassword.getPaddingRight() - drawable.getIntrinsicWidth()) {	
			//點(diǎn)擊范圍為右側(cè) icon 位置
				if (status) {
					status= false;
					//獲取小眼睛圖標(biāo)
					Drawable iconDrawable = getResources().getDrawable(R.drawable.icon_eye_open);
					//設(shè)置新圖標(biāo),分別對(duì)應(yīng)左、上、右、下4個(gè)圖標(biāo)
					etPassword.setCompoundDrawablesWithIntrinsicBounds(null, null, iconDrawable, null);
				} else {
					status= true;
					Drawable iconDrawable = getResources().getDrawable(R.drawable.icon_eye_close);
					etPassword.setCompoundDrawablesWithIntrinsicBounds(null, null, iconDrawable, null);
				}
			}
			return false;
		}
	});

限制輸入長(zhǎng)度

方法一:以判斷方式控制最大輸入長(zhǎng)度

private static final int MAX_INPUT_LENGTH = 50;		//限制最大輸入長(zhǎng)度50

etPassword.setFilters(new InputFilter[]{new InputFilter() {		//通過(guò)過(guò)濾器進(jìn)行限制
 @Override
 public CharSequence filter(CharSequence charSequence, int start, int end, Spanned spanned, int dstart, int dend) {
  //charSequence 為輸入內(nèi)容(刪除時(shí)為空),spanned 為輸入前輸入框內(nèi)容
  if ((!charSequence.toString().equals("")) && spanned.toString().length() >= MAX_INPUT_LENGTH) {
   //判斷當(dāng)前有內(nèi)容輸入(不為刪除),且當(dāng)前內(nèi)容長(zhǎng)度為最大長(zhǎng)度,進(jìn)行 Toast 提醒,且返回空
   Toast.makeText(MyApplication.context, "最大輸入長(zhǎng)度為50", Toast.LENGTH_SHORT).show();
   return "";		//返回值為輸入框增加內(nèi)容,返回空不增加,默認(rèn)返回 null
  }
  return null;
 }
}});

方法二:以過(guò)濾器方式控制最大輸入長(zhǎng)度

etChange.setFilters(new InputFilter[]{new InputFilter() {
 @Override
 public CharSequence filter(CharSequence charSequence, int start, int end, Spanned spanned, int dstart, int dend) {
  if((!source.toString().equals("")) && dest.toString().length() >= MAX_INPUT_LENGTH){
   Toast.makeText(MainActivity.this, "最大輸入長(zhǎng)度為50", Toast.LENGTH_SHORT).show();
  }
  return null;
 }
},new InputFilter.LengthFilter(MAX_INPUT_LENGTH)});		//以過(guò)濾器方式控制最大輸入長(zhǎng)度

以上是制作Android登錄頁(yè)面的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI