一。小伙伴们在做钱包支付中,相信会有个绕不过去的输入支付密码页面。下面小编给个效果图:
公开课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钱包支付之输入支付密码的实现步骤