Android實現隨機驗證碼 自定義View

2021-07-02 05:40:56 字數 2687 閱讀 7524

一、問題描述

熟悉web開發中童鞋們都知道為了防止惡意破解、惡意提交、刷票等我們在提交表單資料時,都會使用隨機驗證碼功能。在android應用中我們同樣需要這一功能,該如何實現呢,下面我們就自定義乙個隨機驗證碼view控制項實現這一需求,並且具備通用性,需要的時候在介面中直接加入這個view元件即可。

二、案例介紹

案例執行效果

案例所涉及元件

1、checkview 自定義的驗證碼控制項,主要重寫ondraw方法實現圖形繪製

2、config:用於對驗證碼控制項引數的配置,像畫點點數、劃線數、背景顏色的設定

3、checkutil:驗證碼相關工具類,實現例如隨機的點座標、隨機線段起始和結束點座標、驗證碼校驗等功能

4、mainactivity:測試應用

三、功能實現

/**

* 功能:用於對驗證碼控制項引數的配置

* */

public class config

/**

* */

public class checkutil

return tempchecknum;

}/**

* 隨機產生劃線的起始點座標和結束點座標

* @param height 傳入checkview的高度值

* @param width 傳入checkview的寬度值

* @return 起始點座標和結束點座標

*/public static int getline(int height, int width);

for(int i = 0; i < 4; i+=2)

return tempchecknum;

}/**

* 隨機產生點的圓心點座標

* @param height 傳入checkview的高度值

* @param width 傳入checkview的寬度值

* @return

*/public static int getpoint(int height, int width);

tempchecknum[0] = (int) (math.random() * width);

tempchecknum[1] = (int) (math.random() * height);

return tempchecknum;

}/**

* 驗證是否正確

* @param usercheck 使用者輸入的驗證碼

* @param checknum 驗證控制項產生的隨機數

* @return

*/public static boolean checknum(string usercheck, int checknum)

string checkstring = "";

for (int i = 0; i < 4; i++)

if(usercheck.equals(checkstring))

else

}/**

* 計算驗證碼的繪製y點位置

* @param height 傳入checkview的高度值

* @return

*/public static int getpositon(int height)

return temppositoin;}}

public class checkview extends view

public void ondraw(canvas canvas)

int line;

for(int i = 0; i < config.line_num; i ++)

// 繪製小圓點

int point;

for(int i = 0; i < config.point_num; i ++)

}public void setchecknum(int chencknum)

public int getchecknum()

public void invalichenknum()

}

public class mainactivity extends activity implements view.onclicklistener

public void initview()

// 初始化驗證碼並且重新整理介面

public void initchecknum()

public void onclick(view v) else

break;

case r.id.ref:

initchecknum();

break;

default:

break;}}

public void setpassstring(string passstring)

}

傑瑞教育

出處:

本文版權歸煙台傑瑞教育科技****

隨機驗證碼的實現

隨機驗證 隨機生產6位數字 漢字 大小寫字母並且進行驗證 隨機生成數字 var s math.floor math.random 10 隨機生成漢字 var string 中國語言文本網將由教育部語言文字應用研究所主辦和執行管理,新 訪問入口更改 var s string.charat math.f...

隨機驗證碼

function window,document if object.prototype.tostring.call options object object else this options.numarr 0,1,2,3,4,5,6,7,8,9 split this options.lette...

Java實現隨機驗證碼功能

現在許多系統的註冊 登入或者發布資訊模組都新增的隨機碼功能,就是為了避免自動註冊程式或者自動發布程式的使用。驗證碼實際上就是隨機選擇一些字元以的形式展現在頁面上,如果進行提交操作的同時需要將上的字元同時提交,如果提交的字元與伺服器 session儲存的不同,則認為提交資訊無效。為了避免自動程式分析解...