当前位置: 首页 > news >正文

开封市建设局网站建设部网站查询注册岩土工程师

开封市建设局网站,建设部网站查询注册岩土工程师,旅游电子商务网站的建设方式,百度加速乐wordpress原标题#xff1a;Android 自定义控件 - 仿支付宝数字键盘简介在一些带有支付功能的 App 中#xff0c;输入的密码一般只能是纯数字#xff0c;虽然我们可以指定 EditText 输入框只能输入数字#xff0c;但是为了提供用户的使用体验#xff0c;我们往往更倾向于使用自定义…原标题Android 自定义控件 - 仿支付宝数字键盘简介在一些带有支付功能的 App 中输入的密码一般只能是纯数字虽然我们可以指定 EditText 输入框只能输入数字但是为了提供用户的使用体验我们往往更倾向于使用自定义的纯数字键盘。本文效果实现步骤集成系统的 KeyBoardView 类在初始化时初始化键盘布局设置 KeyBoard 对象。实现 OnKeyboardActionListener 接口处理按键交互事件。根据需求绘制按键背景和按键图标。设置监听器将输入的内容回调给调用方。键盘布局在 res/xml/ 目录下创建 xml 文件key_password_number.xmlandroid:horizontalGap1dpandroid:keyHeight9%pandroid:keyWidth33.3333%pandroid:verticalGap1dpandroid:codes49android:keyLabel1/android:codes50android:keyLabel2/android:codes51android:keyLabel3/android:codes52android:keyLabel4/android:codes53android:keyLabel5/android:codes54android:keyLabel6/android:codes55android:keyLabel7/android:codes56android:keyLabel8/android:codes57android:keyLabel9/android:codes-10android:keyLabel/android:codes48android:keyLabel0/android:codes-5android:keyLabel/继承 KeyBoardViewpublicclassPwdKeyboardViewextendsKeyboardViewimplementsKeyboardView.OnKeyboardActionListener{privatestaticfinalString TAG PwdKeyboardView;privatestaticfinalintKEY_EMPTY - 10;privateintdelKeyBackgroundColor 0xffcccccc;privateRect keyIconRect;publicPwdKeyboardView(Context context, AttributeSet attrs){super(context, attrs);Log.d(TAG, PwdKeyboardView: two params);init(context);}publicPwdKeyboardView(Context context, AttributeSet attrs, intdefStyleAttr){super(context, attrs, defStyleAttr);Log.d(TAG, PwdKeyboardView: three params);init(context);}privatevoidinit(Context context){Keyboard keyboard newKeyboard(context, R.xml.key_password_number); // 初始化 keyboardsetKeyboard(keyboard);setEnabled( true);setFocusable( true);setPreviewEnabled( false); // 设置点击按键不显示预览气泡setOnKeyboardActionListener( this);}/*** 重新绘制删除按键和空白键** paramcanvas*/OverridepublicvoidonDraw(Canvas canvas){super.onDraw(canvas);List keys getKeyboard().getKeys();for(Keyboard.Key key : keys) {if(key.codes[ 0] KEY_EMPTY) {// 绘制空白键背景drawKeyBackground(key, canvas, delKeyBackgroundColor);}if(key.codes[ 0] Keyboard.KEYCODE_DELETE) {// 删除删除按键背景drawKeyBackground(key, canvas, delKeyBackgroundColor);// 绘制删除按键图标drawKeyIcon(key, canvas, getResources().getDrawable(R.drawable.ic_delete));}}}/*** 绘制按键的背景** paramkey* paramcanvas* paramcolor*/privatevoiddrawKeyBackground(Keyboard.Key key, Canvas canvas, intcolor){ColorDrawable drawable newColorDrawable(color);drawable.setBounds(key.x, key.y, key.x key.width, key.y key.height);drawable.draw(canvas);}/*** 绘制按键的 icon** paramkey* paramcanvas* paramiconDrawable*/privatevoiddrawKeyIcon(Keyboard.Key key, Canvas canvas, Drawable iconDrawable){if(iconDrawable null) {return;}// 计算按键icon 的rect 范围if(keyIconRect null|| keyIconRect.isEmpty()) {// 得到 keyicon 的显示大小因为图片放在不同的drawable-dpi目录下显示大小也不一样intintrinsicWidth iconDrawable.getIntrinsicWidth();intintrinsicHeight iconDrawable.getIntrinsicHeight();intdrawWidth intrinsicWidth;intdrawHeight intrinsicHeight;// 限制图片的大小防止图片按键范围if(drawWidth key.width) {drawWidth key.width;// 此时高就按照比例缩放drawHeight ( int) (drawWidth * 1.0f/ intrinsicWidth * intrinsicHeight);} elseif(drawHeight key.height) {drawHeight key.height;drawWidth ( int) (drawHeight * 1.0f/ intrinsicHeight * intrinsicWidth);}// 获取图片的 x,y 坐标,图片在按键的正中间intleft key.x key.width / 2- drawWidth / 2;inttop key.y key.height / 2- drawHeight / 2;keyIconRect newRect(left, top, left drawWidth, top drawHeight);}if(keyIconRect ! null !keyIconRect.isEmpty()) {iconDrawable.setBounds(keyIconRect);iconDrawable.draw(canvas);}}OverridepublicvoidonPress(intprimaryCode){}OverridepublicvoidonRelease(intprimaryCode){}/*** 处理按键的点击事件*/OverridepublicvoidonKey(intprimaryCode, int[] keyCodes){Log.d(TAG, onKey: primaryCode primaryCode , keyCodes Arrays.toString(keyCodes));if(primaryCode KEY_EMPTY) {return;}if(listener ! null) {if(primaryCode Keyboard.KEYCODE_DELETE) {listener.onDelete();} else{listener.onInput(String.valueOf(( char) primaryCode));}}}OverridepublicvoidonText(CharSequence charSequence){}OverridepublicvoidswipeLeft(){}OverridepublicvoidswipeRight(){}OverridepublicvoidswipeDown(){}OverridepublicvoidswipeUp(){}publicinterfaceOnKeyListener{// 输入回调voidonInput(String text);// 删除回调voidonDelete();}privateOnKeyListener listener;publicvoidsetOnKeyListener(OnKeyListener listener){this.listener listener;}}使用 PwdKeyboardViewandroid:id id/key_boardandroid:layout_width match_parentandroid:layout_height wrap_contentandroid:background #919191android:keepScreenOn trueandroid:keyBackground drawable/selector_key_boardandroid:keyTextColor android:color/blackandroid:keyTextSize 26spandroid:shadowRadius 0/ 显示结果为完整代码https://github.com/xing16/PwdKeyboardView返回搜狐查看更多责任编辑
http://www.zqtcl.cn/news/317758/

相关文章:

  • 中山做网站的新闻静态网站模板下载
  • 以学校为目标做网站策划书企业管理软件都有哪些
  • 黄石网站开发云开发小程序源码
  • 重点实验室网站建设萧山好的做网站的公司
  • 物流网站的建设网站建设优化是什么鬼
  • 门户网站建设项目书页面设计一般用什么软件
  • 安徽城乡建设 厅网站电子商务网站建设需要哪些步骤
  • 网站建设应该懂什么知识青岛模板网站建设
  • 免费cms建站系统有哪些网站设计项目总结
  • 做网站湖州网站后台管理系统如何使用
  • 网站建设报价单-中英文版长春省妇幼网站做四维
  • 注册网站免费网站上传小马后怎么做
  • 我省推行制度推动山西品牌建设整站优化网站
  • 临海手机网站设计网站设计 深圳
  • 网站推广做哪个比较好百度怎么优化排名
  • 做jsp网站时怎么预览wordpress安装不上
  • 网站建设深圳官网怎么制作网站镜像
  • 弹幕网站开发难么招生网站建设的意义
  • 网站空间多大合适软件开发培训机构网课
  • 13个实用平面设计网站网络推广一个月的收入
  • 淮安企业网站制作校园网网络规划与设计方案
  • html完整网站开发自媒体平台账号注册
  • 厦门seo网站网站空间 群集
  • 青岛网站推广方案营销自动化平台
  • 管理信息系统与网站建设有什么区别python版wordpress
  • 济南市建设行政主管部门网站公众号登录入口官网
  • 深圳苏州企业网站建设服务企业做网站需要什么条件
  • 电脑什么网站可以做长图攻略公众号 微网站开发
  • 网站核检单怎么用小皮创建网站
  • 企业网站托管平台有哪些烟台高新区建设局网站