一、問題描述
熟悉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儲存的不同,則認為提交資訊無效。為了避免自動程式分析解...