Android 5秒学会使用手势解锁功能

Android 5秒学会使用手势解锁功能,第1张

概述Android手势解锁本文讲述的是一个手势解锁的库,可以定制显示隐藏宫格点、路径、并且带有小九宫格显示图,和震动!让你学会使用这个简单,高效的库!

AndroID手势解锁

本文讲述的是一个手势解锁的库,可以定制显示隐藏宫格点、路径、并且带有小九宫格显示图,和震动!让你学会使用这个简单,高效的库!

先来一波效果效果展示:

 

手势解锁效果

今天给大家介绍的是本人良心制作的一个手势解锁开源库,大家有什么建议和想法都可以发到我的邮箱: [email protected] 或者评论,我会为大家提供我力所能及的帮助!

GitHub地址:

https://github.com/Diosamo/Gesture_Lock

添加依赖:

添加的gradle

第一步:

Add it in your root build.gradle at the end of repositorIEs:repositorIEs {  maven {    url "https://dl.bintray.com/freecoders/GestureLock"   }}

第二步:

Step 2. Add the dependencydependencIEs {     compile 'com.gesturelock:GestureLock:1.0'}

布局使用:

下面是我测试时写的完整的所有布局:(懒人直接copy)

<?xml version="1.0" enCoding="utf-8"?><relativeLayout  xmlns:androID="http://schemas.androID.com/apk/res/androID"  xmlns:app="http://schemas.androID.com/apk/res-auto"  androID:background="#ffffff"  androID:layout_wIDth="match_parent"  androID:layout_height="match_parent"  androID:gravity="center"  >  <linearLayout    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical"    androID:gravity="center_horizontal"    androID:padding="50dp">    <TextVIEw      androID:textcolor="#434242"      androID:layout_wIDth="wrap_content"      androID:layout_height="wrap_content"      androID:textSize="16sp"      androID:text="绘制图案"      androID:paddingBottom="10dp"/>    <com.gestruelock.IndicatorLockVIEw      androID:ID="@+ID/lockvIEwIndicator"      androID:layout_wIDth="wrap_content"      androID:layout_height="wrap_content"      app:indicator_selected="@drawable/indicator_selected"      app:indicator_unselected="@drawable/indicator_unselected"      androID:layout_gravity="center_horizontal"/>    <TextVIEw      androID:ID="@+ID/tvMessage"      androID:layout_wIDth="wrap_content"      androID:layout_height="wrap_content"      androID:textSize="14sp"      androID:text=""      androID:paddingtop="20dp"      />    <relativeLayout      androID:ID="@+ID/rl"      androID:layout_wIDth="wrap_content"      androID:layout_height="wrap_content"      androID:paddingtop="30dp"      >      <com.gestruelock.ExpandLockVIEw        androID:ID="@+ID/lockvIEwExpand"        androID:layout_wIDth="280dp"        androID:layout_height="280dp"        app:lock_selected1="@drawable/gusture_icon_left"        app:lock_selected2="@drawable/gusture_icon_center"        app:lock_selected3="@drawable/gusture_icon_right"        app:lock_trackcolor="#ff0432"        app:lock_selected_error="@drawable/circle_error"        app:lock_unselected="@drawable/gusture_icon_default"        androID:layout_gravity="center_horizontal"/>    </relativeLayout>  </linearLayout></relativeLayout>

到这里小伙伴直接运行,就可以看到手势解锁的布局,大家也可以根据自己的需求去改变这个xml.

com.gestruelock.IndicatorLockVIEw : 路径显示图,小的九个点com.gestruelock.ExpandLockVIEw: 手势解锁的九宫格

使用配置:

下面的代码是在Activity中直接使用的代码:(懒人直接copy)

public class MainActivity extends AppCompatActivity implements ExpandLockVIEw.OnLockPanelListener,ExpandLockVIEw.OnUpdateIndicatorListener,ExpandLockVIEw.OnUpdateMessageListener,ExpandLockVIEw.OnFinishDrawPasswordListener {  private ExpandLockVIEw mlockvIEwExpand;  private IndicatorLockVIEw lockvIEwIndicator;  private TextVIEw tvMessage;  private Animation mShakeAnimal;  private Vibrator mVibrator; //返回信息如果是正确的  private String succeeMsg="再次输入密码,密码已设置,密码正确,请输入新密码";  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);     mlockvIEwExpand = (ExpandLockVIEw) findVIEwByID(R.ID.lockvIEwExpand);    tvMessage = (TextVIEw) findVIEwByID(R.ID.tvMessage);    lockvIEwIndicator = (IndicatorLockVIEw) findVIEwByID(R.ID.lockvIEwIndicator);    mVibrator =(Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE); //震动//    mlockvIEwExpand.getPaintL().setstrokeWIDth(20); //获取paint 修改连接线段的样式//    mlockvIEwExpand.setLock_trackcolor(0xff0000); //给路径设置不同颜色    //加载动画资源文件    mShakeAnimal = AnimationUtils.loadAnimation(this,R.anim.shake);    mlockvIEwExpand.setActionMode(0);//set mode 设置手势密码//    mlockvIEwExpand.setActionMode(1);//set mode 验证手势密码//    mlockvIEwExpand.setActionMode(2);//set mode 更换手势密码//    mlockvIEwExpand.setHIDdenTrack(true); //隐藏轨迹和按钮    mlockvIEwExpand.setShowError(true); //显示失败视图//    mlockvIEwExpand.setLockTime(2);//设置显示的锁住的时间    //设置各种回调事件    mlockvIEwExpand.setonLockPanelListener(this);    mlockvIEwExpand.setonUpdateIndicatorListener(this);    mlockvIEwExpand.setonUpdateMessageListener(this);    mlockvIEwExpand.setonFinishDrawPasswordListener(this);  }  @OverrIDe  public voID initData() {  }  //密码盘被锁住发生的回调  @OverrIDe  public voID onLockPanel() {  }  //更新小点显示图  @OverrIDe  public voID onUpdateIndicator() {    if (mlockvIEwExpand.getPointTrace().size() > 0) {      lockvIEwIndicator.setPath(mlockvIEwExpand.getPointTrace());    }  }  //返回信息如果是正确的  @OverrIDe  public voID onUpdateMessage(String message) {    if (succeeMsg.contains(message)){      tvMessage.setTextcolor(0xff434242);//设置提示文字颜色    }else {//Error      tvMessage.setTextcolor(0xffe44d4d);      tvMessage.startAnimation(mShakeAnimal); //动画效果    }    tvMessage.setText(message);  }  //vibration 震动对应的接口  @OverrIDe  public voID vibration(String time) {    if ("long".equals(time)){      mVibrator.vibrate(new long[]{50,200},-1);//长震动    }else {      mVibrator.vibrate(new long[]{50,50},-1);//震动    }  }  //设置密码成功  @OverrIDe  public voID onSetPassword() {    Toast.makeText(mContext,"密码设置成功",Toast.LENGTH_SHORT).show();    finish();  }  //解开密码锁成功  @OverrIDe  public voID onopenLock() {    Toast.makeText(mContext,"成功解锁",Toast.LENGTH_SHORT).show();    finish();  }  /* 禁止返回按钮的点击 */  @OverrIDe  public boolean onKeyDown(int keyCode,KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction()== KeyEvent.ACTION_DOWN &&activityNum == 0) {      return true;    } else {      return super.onKeyDown(keyCode,event);    }  }}

手势解锁一共有3种模式,对应设置密码,验证密码,修改密码:

mlockvIEwExpand.setActionMode(0);//set mode 设置手势密码mlockvIEwExpand.setActionMode(1);//set mode 验证手势密码mlockvIEwExpand.setActionMode(2);//set mode 更换手势密码

对应回调接口设置:

mlockvIEwExpand.setonLockPanelListener(this);// 手势解锁次数超出后,锁定解锁的回调  mlockvIEwExpand.setonUpdateIndicatorListener(this);//手势完成后的回调,设置上面的路径显示图  mlockvIEwExpand.setonUpdateMessageListener(this);//手势完成后,返回提示的信息  mlockvIEwExpand.setonFinishDrawPasswordListener(this);//手势解锁成功,密码设置成功的回调

其他配置:

mlockvIEwExpand.getPaintL().setstrokeWIDth(20); //获取paint 修改连接线段的样式mlockvIEwExpand.setLock_trackcolor(0xff0000); //给路径设置不同颜色mlockvIEwExpand.setHIDdenTrack(true); //隐藏轨迹和按钮mlockvIEwExpand.setShowError(true); //显示失败视图mlockvIEwExpand.setLockTime(2);//设置显示的锁住的时间xml配置(com.gestruelock.ExpandLockVIEw 只针对这个控件):

图片的指定就是在这里,可以设置左边,中间和右边的图片,如果一样就全部指定同一张图片,库里面自带上面图片显示效果的图片资源!

app:lock_selected1="@drawable/left" //设置最左边图片  app:lock_selected2="@drawable/center" //设置最中间图片  app:lock_selected3="@drawable/right" //设置最右边图片  app:lock_trackcolor="#04ff9b"    //设置轨迹颜色  app:lock_selected_error="@drawable/circle_error" //设置错误图片app:lock_unselected="@drawable/gusture_icon_default" //设置未选中图片

总结:

简单吧,3分钟你就可以使用这个库实现手势解锁了!觉得不错的小伙伴,可以给我的项目加个星星,也可以给出您宝贵的意见!

总结

以上是内存溢出为你收集整理的Android 5秒学会使用手势解锁功能全部内容,希望文章能够帮你解决Android 5秒学会使用手势解锁功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1143243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存