android實(shí)現(xiàn)密碼框右側(cè)顯示小眼睛
本文實(shí)例為大家分享了android實(shí)現(xiàn)密碼框右側(cè)顯示小眼睛的具體代碼,供大家參考,具體內(nèi)容如下
實(shí)現(xiàn)效果
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="12dp" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:paddingTop="10dp" android:background="@drawable/selector_sign" android:id="@+id/et_usertel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:hint="@string/editText_phont" android:inputType="phone" android:paddingLeft="90dp" android:singleLine="true" android:textColorHint="#DDDDDD" android:textSize="16sp" /> <EditText android:id="@+id/edt_chosed_country_num" android:layout_width="60dp" android:layout_height="wrap_content" android:layout_alignLeft="@id/et_usertel" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:background="@color/white" android:inputType="number" android:maxLength="5" android:text="+86" android:textColor="#353535" android:textSize="16sp" /> </RelativeLayout> <LinearLayout android:id="@+id/linear_password_code" android:visibility="visible" android:layout_marginTop="10dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:background="@drawable/selector_sign" android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:paddingTop="10dp" android:hint="@string/editText_code" android:paddingLeft="90dp" android:singleLine="true" android:textColorHint="#DDDDDD" android:textSize="16sp" /> <Button android:id="@+id/bu_register_code" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_alignRight="@+id/et_password" android:layout_marginRight="2dp" android:background="@drawable/shape_border_color_primary_sign" android:text="@string/verification_code" android:textColor="@drawable/selector_text_color_primary" android:textSize="16sp" /> <!-- <View android:layout_marginTop="1dp" android:layout_alignBottom="@+id/bu_code" android:layout_width="290dp" android:layout_height="1dp" android:background="@color/light_grey"/>--> </RelativeLayout> </LinearLayout> <LinearLayout android:id="@+id/password_liner" android:visibility="gone" android:layout_marginTop="10dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:background="@drawable/selector_sign" android:id="@+id/et_password_code" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:paddingTop="10dp" android:hint="請(qǐng)輸入密碼登錄" android:paddingLeft="90dp" android:singleLine="true" android:textColorHint="#DDDDDD" android:inputType="textPassword" android:textSize="16sp" /> <ImageView android:id="@+id/imageView" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_margin="10dp" /> </RelativeLayout> </LinearLayout> <Button android:textColor="@color/background" android:layout_marginTop="10dp" android:background="@drawable/shape_color_primary" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登錄"/> <LinearLayout android:layout_marginTop="2dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:textStyle="bold" android:gravity="center" android:text="使用密碼登錄 >" android:id="@+id/tv_register_login_password" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout> </LinearLayout>
//主要代碼如下
<LinearLayout android:id="@+id/password_liner" android:visibility="gone" android:layout_marginTop="10dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:background="@drawable/selector_sign" android:id="@+id/et_password_code" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:paddingTop="10dp" android:hint="請(qǐng)輸入密碼登錄" android:paddingLeft="90dp" android:singleLine="true" android:textColorHint="#DDDDDD" android:inputType="textPassword" android:textSize="16sp" /> <ImageView android:id="@+id/imageView" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_margin="10dp" /> </RelativeLayout> </LinearLayout>
重要代碼
private boolean isHideFirst = true;// 輸入框密碼是否是隱藏的,默認(rèn)為true if (isHideFirst == true) { imageView.setImageResource(R.drawable.open); //密文 HideReturnsTransformationMethod method1 = HideReturnsTransformationMethod.getInstance(); et_password_code.setTransformationMethod(method1); isHideFirst = false; } else { imageView.setImageResource(R.drawable.close); //密文 TransformationMethod method = PasswordTransformationMethod.getInstance(); et_password_code.setTransformationMethod(method); isHideFirst = true; } // 光標(biāo)的位置 int index = et_password_code.getText().toString().length(); et_password_code.setSelection(index);
package com.ynrd.entrepreneur.activity; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.text.method.TransformationMethod; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.ynrd.entrepreneur.R; import com.ynrd.entrepreneur.utils.CountDownTimerUtils; public class RegisterActivity extends BaseCommonActivity implements View.OnClickListener { private Button bu_register_code; private TextView tv_register_login_password; private boolean isHideFirst = true;// 輸入框密碼是否是隱藏的,默認(rèn)為true private boolean isFirst = true;// 是否密碼登錄,默認(rèn)是驗(yàn)證碼登錄 private ImageView imageView; private EditText et_password_code; private LinearLayout linear_password_code,password_liner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); } @Override protected void initViews() { super.initViews(); //獲取驗(yàn)證碼 bu_register_code = findViewById(R.id.bu_register_code); tv_register_login_password = findViewById(R.id.tv_register_login_password); imageView = findViewById(R.id.imageView); et_password_code = findViewById(R.id.et_password_code); linear_password_code = findViewById(R.id.linear_password_code); password_liner = findViewById(R.id.password_liner); } @Override protected void initListeners() { super.initListeners(); bu_register_code.setOnClickListener(this); tv_register_login_password.setOnClickListener(this); imageView.setOnClickListener(this); imageView.setImageResource(R.drawable.close); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.bu_register_code: //驗(yàn)證碼方法 后期調(diào)用服務(wù)器 CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(bu_register_code, 30000, 1000); mCountDownTimerUtils.start(); break; case R.id.tv_register_login_password: if (isFirst == true){ //切換成密碼登錄 linear_password_code.setVisibility(View.GONE); password_liner.setVisibility(View.VISIBLE); tv_register_login_password.setText("使用短信驗(yàn)證碼登錄 >"); isFirst = false; }else{ //切換成驗(yàn)證碼登錄 linear_password_code.setVisibility(View.VISIBLE); password_liner.setVisibility(View.GONE); tv_register_login_password.setText("使用密碼登錄 >"); isFirst = true; } break; case R.id.imageView: if (isHideFirst == true) { imageView.setImageResource(R.drawable.open); //密文 HideReturnsTransformationMethod method1 = HideReturnsTransformationMethod.getInstance(); et_password_code.setTransformationMethod(method1); isHideFirst = false; } else { imageView.setImageResource(R.drawable.close); //密文 TransformationMethod method = PasswordTransformationMethod.getInstance(); et_password_code.setTransformationMethod(method); isHideFirst = true; } // 光標(biāo)的位置 int index = et_password_code.getText().toString().length(); et_password_code.setSelection(index); break; } } }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android學(xué)習(xí)筆記之應(yīng)用單元測試實(shí)例分析
這篇文章主要介紹了Android學(xué)習(xí)筆記之應(yīng)用單元測試,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android單元測試的實(shí)現(xiàn)原理與具體步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android自定義GestureDetector實(shí)現(xiàn)手勢ImageView
這篇文章主要為大家詳細(xì)介紹了Android自定義GestureDetector實(shí)現(xiàn)手勢ImageView的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Android實(shí)戰(zhàn)APP啟動(dòng)速度優(yōu)化
本篇文章給大家通過實(shí)戰(zhàn)總結(jié)了Android開發(fā)APP啟動(dòng)速度優(yōu)化的方法以及需要注意的地方,有需要的朋友可以參考下。2018-05-05Android短信驗(yàn)證碼倒計(jì)時(shí)驗(yàn)證的2種常用方式
各位開發(fā)者們?cè)陂_發(fā)中經(jīng)常會(huì)遇到獲取短信驗(yàn)證碼,獲取驗(yàn)證碼后需要等待1分鐘倒計(jì)時(shí),這段時(shí)間是不能再次發(fā)送短信請(qǐng)求的。這篇文章總結(jié)了兩種常用的Android​短信驗(yàn)證碼倒計(jì)時(shí)驗(yàn)證方式,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12解決Android Studio 格式化 Format代碼快捷鍵問題
這篇文章主要介紹了解決Android Studio 格式化 Format代碼快捷鍵問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android仿zaker用手向上推動(dòng)的特效開發(fā)【推動(dòng)門效果】(附demo源碼下載)
這篇文章主要介紹了Android仿zaker用手向上推動(dòng)的特效,結(jié)合完整實(shí)例形式分析了Android滑動(dòng)切換效果的實(shí)現(xiàn)步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android 判斷某個(gè)服務(wù)(service)是否運(yùn)行
這篇文章主要介紹了 Android 判斷某個(gè)服務(wù)(service)是否運(yùn)行的相關(guān)資料,需要的朋友可以參考下2017-06-06android studio開發(fā)實(shí)現(xiàn)APP開機(jī)自啟動(dòng)
這篇文章主要為大家詳細(xì)介紹了android studio開發(fā)實(shí)現(xiàn)APP開機(jī)自啟動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android編程判斷網(wǎng)絡(luò)是否可用及調(diào)用系統(tǒng)設(shè)置項(xiàng)的方法
這篇文章主要介紹了Android編程判斷網(wǎng)絡(luò)是否可用及調(diào)用系統(tǒng)設(shè)置項(xiàng)的方法,涉及Android針對(duì)網(wǎng)絡(luò)連接的判定及屬性設(shè)置的調(diào)用,需要的朋友可以參考下2016-03-03