翻翻git之---逻辑清晰,简单好用的App内部锁控件 PinLockView

转载请注明出处王亟亟的大牛之路

先安利,收纳库:https://github.com/ddwhan0123/Useful-Open-Source-Android 每天都在更!!!

上一篇关于学习和职场的一些看法,评论不错阅读量不佳(估计是没分享到主页的缘故吧,这里再安利下):http://blog.csdn.net/ddwhan0123/article/details/51646255

废话不多说,开始这一篇的内容

之前也有看到过一些类似的应用锁实现,今天看到个比较好看+好用的就推荐给大家

先看下运行效果:

How to use?

Gradle

dependencies {
    // other dependencies here

    compile ‘com.andrognito.pinlockview:pinlockview:1.0.0‘
}

Maven

<dependency>
  <groupId>com.andrognito.pinlockview</groupId>
  <artifactId>pinlockview</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>

Eclipse的小伙们再见!!!

来看下例子里怎么用的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/mine_shaft"
    tools:context="com.andrognito.pinlockviewapp.SampleActivity">

    <ImageView
        android:id="@+id/profile_image"
        android:layout_width="84dp"
        android:layout_height="84dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="124dp"
        android:src="@drawable/img_no_avatar" />

    <TextView
        android:id="@+id/profile_name"
        android:layout_width="256dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/profile_image"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="36dp"
        android:fontFamily="sans-serif-thin"
        android:gravity="center"
        android:maxLines="1"
        android:text="Welcome"
        android:textColor="@color/white"
        android:textSize="34sp" />

    <com.andrognito.pinlockview.IndicatorDots
        android:id="@+id/indicator_dots"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/profile_name"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="36dp" />

    <com.andrognito.pinlockview.PinLockView
        android:id="@+id/pin_lock_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/indicator_dots"
        app:keypadButtonSize="72dp"
        app:keypadTextSize="18dp"
        app:keypadShowDeleteButton="false"
        app:keypadTextColor="@color/white"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp" />

</RelativeLayout>

主要是密码锁的 IndicatorDots 和 “按键实现的” PinLockView 就和普通控件一样用就行,最多加点自定义标签,标签在后面会解释

看下Activity里怎么用的(解释在注视里)

public class SampleActivity extends AppCompatActivity {

    public static final String TAG = "PinLockView";

    private PinLockView mPinLockView;
    private IndicatorDots mIndicatorDots;

    //监听密码输入情况
    private PinLockListener mPinLockListener = new PinLockListener() {

        //输入长度达到length后触发
        @Override
        public void onComplete(String pin) {
            Log.d(TAG, "Pin complete: " + pin);
            Toast.makeText(SampleActivity.this, "密码输完了是 " + pin, Toast.LENGTH_SHORT).show();
        }

        //为空时触发
        @Override
        public void onEmpty() {
            Log.d(TAG, "Pin empty");
        }

        //输入内容变化时触发
        @Override
        public void onPinChange(int pinLength, String intermediatePin) {
            Log.d(TAG, "Pin changed, new length " + pinLength + " with intermediate pin " + intermediatePin);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_sample);

        mPinLockView = (PinLockView) findViewById(R.id.pin_lock_view);
        mIndicatorDots = (IndicatorDots) findViewById(R.id.indicator_dots);

        //2个控件产生关联
        mPinLockView.attachIndicatorDots(mIndicatorDots);
        //添加监听事件
        mPinLockView.setPinLockListener(mPinLockListener);
        //设置密码总长度
        mPinLockView.setPinLength(4);
//设置按钮颜色        mPinLockView.setTextColor(getResources().getColor(R.color.white));
    }
}

列出其他的一些自定义标签

 app:pinLength="6"                                       // 改pin的长度
  app:keypadTextColor="#E6E6E6"                           // 设置键盘字体颜色
  app:keypadTextSize="16dp"                               // 设置键盘字体大小
  app:keypadButtonSize="72dp"                             // 设置按钮大小
  app:keypadVerticalSpacing="24dp"                        // 改变键盘按钮之间的垂直间隔
  app:keypadHorizontalSpacing="36dp"                      // 改变键盘按钮之间的水平间距
  app:keypadButtonBackgroundDrawable="@drawable/bg"       // 设置按钮背景图片
  app:keypadDeleteButtonDrawable="@drawable/ic_back"      // 设置删除按钮图片
  app:keypadDeleteButtonSize="16dp"                       // 设置删除按钮图标大小
  app:keypadShowDeleteButton="false"                      // 设置是否显示删除按钮,默认不显示
  app:keypadDeleteButtonPressedColor="#C8C8C8"            // 更改删除按钮的按/焦点状态颜色

  app:dotEmptyBackground="@drawable/empty"                // 自定义点的空状态
  app:dotFilledBackground"@drawable/filled"               // 自定义点的填充状态
  app:dotDiameter="12dp"                                  // 改变点的直径
  app:dotSpacing="16dp"                                   // 改变单个点之间的间距

源码地址:https://github.com/aritraroy/PinLockView/archive/master.zip

该库已收入

时间: 2024-12-10 08:09:43

翻翻git之---逻辑清晰,简单好用的App内部锁控件 PinLockView的相关文章

Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单

Android特效专辑(十)--点击水波纹效果实现,逻辑清晰实现简单 这次做的东西呢,和上篇有点类似,就是用比较简单的逻辑思路去实现一些比较好玩的特效,最近也是比较忙,所以博客更新的速度还得看时间去推演,但是也能保证一周三更的样子,现在也还是以小功能,或者说是一些小入门级别的博客为主,我也不算是什么很厉害的人,很多细节的支持处理的仍然还是不到位,所以也是一直在弥补,话不多说,来看看今天的效果 实现起来很简单吧,那我们就来看一下他是怎么实现的咯! OnclickRuning package com

[Git]Git远程仓库的简单应用

[Git]Git远程仓库的简单应用 前段时间老哥让看看Git,说可以多多了解一些开源的东西,本菜鸟果断听从,从网上了解有关资料,看看这到底是个什么东东.不过脑容量有限并且临时有点事,最近才抽出时间实际操作了一下.只了解了很简单的一个流程,遂记之以备后用. 言归正传,我是在开源中国上注册的账号,就以之为例,别的地方没试过,想必也是大同小异吧. 1. 当然是注册账号啦 Go to https://git.oschina.net/signup 用人家东西,自然要听人家的吩咐,填个表格咯 Like th

git branch几个简单操作

1.git branch  该命令会列出当先项目中的所有分支信息,其中以*开头的表示当前所在的分支.参数-r列出远程仓库中的分支,而-a则远程与本地仓库的全部分支. 2.git branch develop 创建develop本地分支 3.git branch checkout master 切换分支,从当前分支转到develop分支 4.git merge develop 合并分支,将develop分支合并到当前分支 5.git branch -d develop 删除分支,将develop分

Swift语言编写一个简单的条形码扫描APP

swift语言编写一个简单的条形码扫描APP 原文地址:appcoda 在处理职员在杂货店的收银台排了很长的队伍,在机场帮助检查背包和旅客,或者在主要的食品供应商,协助处理乏味的存货清单过程,条形码扫描是很简单的处理工具.实际上,他们已经用了这个办法来解决消费者在智能购物,图书分类,等其他目的.因此,让我们来制作一个iPhone版本的条形码扫描工具吧! 对我们来说幸运的是,苹果已经制作了条形码扫描的程序,实现它是一件很简单的事情.我们将要研究进入AV Foundation框架的世界,组建APP,

史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发

书是人类进步的阶梯. ——高尔基 习大大要求新新人类要有中国梦,鼓励大学生们一毕业就创业.那最好的创业途径是什么呢?就是APP.<构建跨平台APP-jQuery Mobile移动应用实战>就是一本写给没钱没身份没资历的创业小白看的APP书,看完这本书你可以拥有自己的一个APP,不用花钱就能移植到其他移动平台,支持iOS,Android,Windows Phone!!!!!!!!找个最便宜的来练手吧!  小白APP交流Q群:  348632872 清华大学出版社推出的<构建跨平台APP:j

翻翻git之---简单的配置达到产品在应用市场的评价跳转功能

转载请注明出处:王亟亟的大牛之路 最近软文的东西写的比较少,家里的小宝宝(麦麦)咬毛了,在细心照料.外加最近玩WOW比较上头,所以没花大时间在写文章上,今天看到个实现APP内提示跳转应用市场的库觉得还不错,推荐给大家 先来看看运行效果 用户点进去他会问是否评级,稍后评价等等等,原作者对这一系列功能封的比较彻底,方便大家使用,我们来看一下一个简单的提示页面如何配置. 在Activity初始化阶段把一些需要配置的东西设置好 AppRate.with(this) .setStoreType(Store

翻翻git之---简单易用的状态栏工具库 StatusBarUtil

转载请注明出处:王亟亟的大牛之路 前天写的一篇RxJava的文章里用到了翔哥的沉浸式菜单栏的一个类,然后觉得还是有很多拓展的空间的,因为它只是改了颜色,然后我就去翻Git心里想的是如果没有翻到就自己写了,然后还是翻到了就推荐给大家 git地址:https://github.com/ddwhan0123/StatusBarUtil 作者地址:https://github.com/laobie 然后因为作者是中国人并且还写了说明的blog那也就省事了..我贴个地址大家看看就知道了,地址如下:http

如何构建逻辑清晰的可拖拽树的数据结构

在为知笔记上的每日计划已经有好几天没有写实际内容了,抓狂脸.时间真是过得超级快呀,这几天双十一,疯狂的看喜欢的东西和看快递.其实并不是为了双十一降价而买东西,而是近来本来就有买东西的打算,而且撞到了双十一前,那就干脆放购物车里好了,还有就是半年没见降价的零食也打折啦啦啦~~^_^.好喜欢双十一结束后淘宝的宣传片<再见双十一>,接下来的这个星期,就静静的等待幸福来敲门~ 言归正传,今天来分享一下关于如何构建数据结构使得页面逻辑更为清晰的思路. 事情的起因是这样的,boss安排我做一个列表拖拽页面

mac下的git的安装与简单的配置

git 本地操作 git 简介 1.Git是分布式的SCM,SVN是集中式的 2.Git每个历史版本存储完整的文件,SVN存储文件差异 3.Git可离线完成大部分操作,SVN则相反 4.Git有着更优雅的分支和合并实现 5.Git有更强的撤销修改和修改版本历史的能力 6.Git速度更快,效率更高 一.mac 下下载 git 地址 http://git-scm.com http://sourceforge.net/projects/git-osx-installer/ 1.切换最新版本,自己喜欢的