如何在Android中利用视图实现一个手势密码功能

  介绍

这篇文章将为大家详细讲解有关如何在Android中利用视图实现一个手势密码功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

用法:

 & lt; com.leo.library.view.GestureContentView
  android: id=癅 + id/id_gesture_pwd"
  android: layout_gravity=癱enter_horizontal"
  android: layout_marginTop=?0 dp"
  android: layout_width=癿atch_parent"
  android: layout_height=癿atch_parent"
  应用:列=?”;
  应用:行=?”;
  应用:填充=?0 dp"
  应用:normalDrawable=癅drawable/gesture_node_normal"
  应用:selectedDrawable=癅drawable/gesture_node_pressed"
  应用:erroDrawable=癅drawable/gesture_node_wrong"
  应用:normalStrokeColor=? 000“
  应用:erroStrokeColor=? ff0000"
  应用:strokeWidth=? dp"/在

应用打头的是自定义的一些属性,

attrs。xml:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt; resources>   & lt; declare-styleable name=癐ndicatorView"祝辞   & lt; !——默认状态的可拉的——比;   & lt; attr name=皀ormalDrawable"格式=皉eference"/比;   & lt; !——被选中状态的可拉的——比;   & lt; attr name=皊electedDrawable"格式=皉eference"/比;   & lt; !——错误状态的drawabe——比;   & lt; attr name=癳rroDrawable"格式=皉eference"/比;   & lt; !——列数——比;   & lt; attr name=癱olumn"格式=癷nteger"/比;   & lt; !——行数——比;   & lt; attr name=皉ow"格式=癷nteger"/比;   & lt; !——填充值、填充值越大点越小——比;   & lt; attr name=皃adding"格式=癲imension"/比;   & lt; !——默认连接线颜色——比;   & lt; attr name=皀ormalStrokeColor"格式=癱olor"/比;   & lt; !——错误连接线颜色——比;   & lt; attr name=癳rroStrokeColor"格式=癱olor"/比;   & lt; !——连接线大小——比;   & lt; attr name=皊trokeWidth"格式=癲imension"/比;   & lt;/declare-styleable>   & lt;/resources>

MainActivity。java:

 

<强>实现思路:

1,我们需要知道指示器有多少行,多少列,默认显示什么,选中后显示什么?
2,然后根据传入的密码把对应的点显示成选中状态,没有选中的点为默认状态。

好了,知道我们的思路,首先自定义一个视图叫IndicatorView继承看来,然后重写三个构造方法:

公共类IndicatorView扩展视图{
  公共IndicatorView(上下文语境){
  这(上下文,null);
  }
  
  公共IndicatorView(上下文语境,AttributeSet attrs) {
  这(上下文、attrs 0);
  }
  
  公共IndicatorView(上下文语境、AttributeSet attrs int defStyleAttr) {
  超级(上下文、attrs defStyleAttr);
  }
  }

定义自定义属性(在res/价值观下创建attrs。xml文件):

1,我们需要传入的默认显示图片:

 & lt; !——默认状态的可拉的——比;
  & lt; attr name=皀ormalDrawable"格式=皉eference"/在

2,我们需要拿到传入的选中时图片:

& lt; !——被选中状态的可拉的——比;   & lt; attr name=皊electedDrawable"格式=皉eference"/在

其它的一些属性:

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt; resources>   & lt; declare-styleable name=癐ndicatorView"祝辞   & lt; !——默认状态的可拉的——比;   & lt; attr name=皀ormalDrawable"格式=皉eference"/比;   & lt; !——被选中状态的可拉的——比;   & lt; attr name=皊electedDrawable"格式=皉eference"/比;   & lt; !——列数——比;   & lt; attr name=癱olumn"格式=癷nteger"/比;   & lt; !——行数——比;   & lt; attr name=皉ow"格式=癷nteger"/比;   & lt;/declare-styleable>   & lt;/resources>

定义完属性后,此时我们xml中就可以引用自定义观点了:

& lt; com.leo.library.view.IndicatorView   android: id=癅 + id/id_indicator_view"   android: layout_marginTop=?0 dp"   android: layout_width=?5 dp"   android: layout_height=?5 dp"   android: layout_alignParentTop=皌rue"   android: layout_centerHorizontal=皌rue"   应用:列=?”;   应用:normalDrawable=癅drawable/shape_white_indicator"   应用:填充=? dp"   应用:行=?”;   应用:selectedDrawable=癅drawable/shape_orange_indicator"/在

如何在Android中利用视图实现一个手势密码功能