Android钱包支付之输入支付密码的实现步骤

  

一。小伙伴们在做钱包支付中,相信会有个绕不过去的输入支付密码页面。下面小编给个效果图:

  

 Android钱包支付之输入支付密码的实现步骤”> png </p> 898342572738938468.
  <p>实现的原理很简单,要点如下:</p>
  <p>。自定义EditTextView <br/>
  b。自定义EditTextView嵌套入对话框中,点击紧贴软键盘弹出。<br/>
  c。监听软键盘的弹出和收起事件,当软键盘收起,对话框也关闭。</p>
  <p>二。下面开始讲述实现的步骤(围绕上面原理,按三个步骤阐述)。</p>
  <p>步骤1。自定义EditTextView。这里,小编采用的解决方案是网上一个开源的EditTextView,源码如下:</p>
  
  <pre类=   公开课PayPwdEditText RelativeLayout{延伸   私人EditText EditText;//文本编辑框   私人上下文语境;   私人LinearLayout LinearLayout;//文本密码的文本   私人TextView[]两个;//文本数组   私人int pwdlength=6;//密码长度,默认6   私人>   最后PayPwdEditText这项=(PayPwdEditText) view.findViewById (R.id.dialog_ppet);/* *   * @param告诉我们背景可拉的   * @param pwdlength密码长度   * @param slpilinewidth分割线宽度   * @param splilinecolor分割线颜色   * @param pwdcolor密码字体颜色   * @param pwdsize密码字体大小   */ppet.initStyle (R.drawable。edit_num_bg 6 0.33 f, R.color。黄色,R.color。黄色,30);      

其中,背景R.drawable.edit_num_bg所对应的样式代码如下:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;选择xmlns: android=" http://schemas.android.com/apk/res/android "比;   & lt;项目android: state_pressed=" false "比;   & lt; shape>   & lt; !——圆角大小——比;   & lt;角落android:半径=" 5浸”/比;   & lt; !——背景填充色——比;   & lt;固体android:颜色=癅color/rdb_bg”/比;   & lt; !——背景外围分割线颜色及宽度——比;   & lt;中风android:颜色=" @color/黄”android:宽度=?.3 dp/比;   & lt;/shape>   & lt;/item>   & lt;/selector>      

以上,和以下需要使用到的色值如下:

        & lt;颜色名称=" rdb_bg "祝辞# 151515 & lt;/color>   & lt;颜色名称=盎粕痹? fdd108   & lt;颜色名称="透明"祝辞# 00000000 & lt;/color>      

b。设置密码输入完成后的回调:

        这项。setOnTextFinishListener(新PayPwdEditText.OnTextFinishListener () {   @Override   公共空间>   新处理程序()。postDelayed(新Runnable () {   @Override   公共空间run () {   ppet.setFocus ();   }   },100)、      

步骤2。自定义的EditTextView设置好了,那么,得将它放到对话框中加以使用了:

     //将此方法放在按钮的点击事件中即可弹出输入支付密码页面   私人空间showEditPayPwdDialog () {   视图视图=getLayoutInflater () .inflate(出来。dialog_et_paypwd, null);   walletDialog=new对话框(这个,R.style.walletFrameWindowStyle);   walletDialog。setContentView(看来,新的ViewGroup.LayoutParams (ViewGroup.LayoutParams。MATCH_PARENT ViewGroup.LayoutParams.WRAP_CONTENT));   最后一个窗口窗口=walletDialog.getWindow ();   WindowManager。LayoutParams西城=window.getAttributes ();//紧贴软键盘弹出   王。重力=Gravity.BOTTOM;//以下这两句是为了保证按钮可以水平满屏   王。宽度=ViewGroup.LayoutParams.MATCH_PARENT;   王。身高=ViewGroup.LayoutParams.WRAP_CONTENT;   walletDialog.onWindowAttributesChanged (wl);   walletDialog.setCanceledOnTouchOutside(假);   walletDialog.show ();   最后PayPwdEditText这项=(PayPwdEditText) view.findViewById (R.id.dialog_ppet);//调用initStyle方法创建你需要设置的样式   ppet.initStyle (R.drawable。edit_num_bg 6 0.33 f, R.color。黄色,R.color。黄色,30);   这项。setOnTextFinishListener(新PayPwdEditText.OnTextFinishListener () {   @Override   公共空间>   & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android "   android: layout_width=" match_parent "   android: layout_height=" wrap_content "   android:α=" 13 "   android:背景=" @color/透明”   面向android:=按怪薄北?   LinearLayout & lt;   android: layout_width=" match_parent "   android: layout_height=" wrap_content "   android: layout_gravity="中心"   android:背景=" @color/rdb_bg”   面向android:=按怪薄北?   & lt;使用   android: layout_width=" match_parent "   android: layout_height=癿atch_parent”比;   & lt; TextView   android: id=癅 + id/tv_title”   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android: layout_centerHorizontal=" true "   android: layout_marginTop=" @dimen/y30”   android:文本="输入支付密码”   android:输入textColor=" @color/白色/比;   & lt; com.enterprise.moshare.xdht.view.widget.PayPwdEditText   android: id=癅 + id/dialog_ppet”   android: layout_marginTop=" @dimen/y30”   android: layout_width=" @dimen/x544”   android: layout_height=" @dimen/y78”   android: layout_below=癅 + id/tv_title”   android: layout_marginBottom=" @dimen/y40”   android: layout_centerHorizontal=" true "/比;   & lt;/RelativeLayout>   & lt;/LinearLayout>   & lt;/LinearLayout>

Android钱包支付之输入支付密码的实现步骤