Android 滑块验证

摘要:
先上图看看实现效果1.在app的build.gradle添加依赖implementation'com.luozm.captcha:captcha:1.1.2'2.将Captcha添加至布局文件˂com.luozm.captcha.Captchaandroid:android:layout_centerInParent="true"android:layout_width="match_parent

先上图看看实现效果

Android 滑块验证第1张

1.在 app 的 build.gradle 添加依赖

implementation 'com.luozm.captcha:captcha:1.1.2'

2.将 Captcha 添加至布局文件

 <com.luozm.captcha.Captcha
        android: 
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="265dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        app:mode="mode_bar"
        app:src="http://t.zoukankan.com/@drawable/validate"
        app:blockSize="50dp"
        android:scaleType="centerCrop"
        app:max_fail_count="4"/>

3.添加 Java 代码

    public void showw(String advPic) {
        Context context = MainActivity.this;
        diaa = new Dialog(context, R.style.edit_AlertDialog_style);
        diaa.setContentView(R.layout.item_pict);
        captcha = diaa.findViewById(R.id.captCha);
        final Button btn_mode = diaa.findViewById(R.id.btn_mode);
        final Captcha captcha = diaa.findViewById(R.id.captCha);
        ImageView cuowu = diaa.findViewById(R.id.im_cuowu);
        // Glide.with(getApplication()).load(advPic).into(captcha );
        captcha.setBitmap(advPic);
        btn_mode.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (captcha.getMode() == Captcha.MODE_BAR) {
                    captcha.setMode(Captcha.MODE_NONBAR);
                    btn_mode.setText("滑动条模式");
                } else {
                    captcha.setMode(Captcha.MODE_BAR);
                    btn_mode.setText("无滑动条模式");
                }
            }
        });
        cuowu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                diaa.dismiss();
                itData(mLongitude, mLatitude);
            }
        });
        captcha.setCaptchaListener(new Captcha.CaptchaListener() {
            @Override
            public String onAccess(long time) {
                Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show();
                diaa.dismiss();
                diaa.setCanceledOnTouchOutside(true);
                return "验证通过";
            }
            @Override
            public String onFailed(int count) {
                Toast.makeText(MainActivity.this, "验证失败,失败次数" + count, Toast.LENGTH_SHORT).show();
                return "验证失败";
            }
            @Override
            public String onMaxFailed() {
                Toast.makeText(MainActivity.this, "验证超过次数,你的帐号被封锁", Toast.LENGTH_SHORT).show();
                return "可以走了";
            }
        });
        diaa.show();
        diaa.setCanceledOnTouchOutside(true);
        Window w = diaa.getWindow();
        WindowManager.LayoutParams lp = w.getAttributes();
        lp.x = 0;
        lp.y = 40;
        diaa.onWindowAttributesChanged(lp);
    }

免责声明:文章转载自《Android 滑块验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序获取自定义属性值JDK8 元空间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android学习——后台程序

Android学习——后台程序 在Android系统中我们一直在接触着前台界面程序,其实在一开始接触Android时就听说了,程序就有有界面和无界面之分。后台程序就是这类无界面的程序,它在后台执行,没有影响你的界面。比如短信监听程序,执行在后台,当有短信时才给你们提示,振动或声音;比如闹钟,设定好时间后,在定时通知你;再比如mp3播放器,选择好音乐后,在待...

Android中RadioGroup的初始化和简单的使用

一简介: RadioGroup作为一个单选按钮组,可以设置为性别选择男或则女,地址选择等等,作为一个android入门级选手,就简单的说一下RadioGroup组中RadioButton的布局和初始化操作,以及禁用整个RadioGroup。 二具体介绍: 布局: <RadioGroup androi...

Android 微信支付,授权,分享回调区分记录

我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。 本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。 接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。 activity的oncreate方法中实例化I...

UsbManager, UsbDevice的简单示例

activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"...

Unity调用安卓Android的Toast

需求:在游戏中弹窗消息,调起安卓的Toast 项目中需要做Unity和安卓交互时,经常需要通过安卓Toast来做简单的输出,以便于测试。 方法一:Unity中,C#主导 //Unity调用安卓的土司 public static void MakeToast(stringinfo) { AndroidJavaClass unityPla...

解决Android Toast重复显示等待时间过长的问题

Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失。一般用于帮助或提示。 当触发点击事件显示toast信息时,如果设置了时间长短类型为LENGTH_LONG,虽然回到后台运行,但是依然会显示toast信息,尤其是当连续点击时,toast就会排队等待直到所有toast显示完毕,这种界面的用户体验是很差的。 → 1toast...