日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 实现验证码效果图

發布時間:2023/12/10 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 实现验证码效果图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自定義驗證碼圖片view

public class CheckView extends View {Context mContext;String mCheckCode = null;Paint mTempPaint = new Paint();private final int mPointNum;private final int mLineNum;private int mTextLength;private final float mTextSize; // private final int mTextColor;private final int mBgColor;// 驗證碼public CheckView(Context context, AttributeSet attrs) {super(context, attrs);mContext = context;TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CheckView);// 獲取隨機點的個數mPointNum = a.getInteger(R.styleable.CheckView_point_num, 0);// 獲取隨機線的條數mLineNum = a.getInteger(R.styleable.CheckView_line_num, 0);// 獲取驗證碼長度 // mTextLength = a.getInteger(R.styleable.CheckView_text_length, 2); // mTextLength = mCheckCode.length();// 獲取驗證碼字體大小mTextSize = a.getDimension(R.styleable.CheckView_text_size, 30);// 獲取驗證碼字體顏色 // mTextColor = a.getColor(R.styleable.CheckView_text_color, 0XFFFFFFFF);// 獲取背景顏色mBgColor = a.getColor(R.styleable.CheckView_bg_color, 0XFFFFFFFF);a.recycle();mTempPaint.setAntiAlias(true);mTempPaint.setTextSize(mTextSize);mTempPaint.setStrokeWidth(3); // Log.d("CheckView", "point_num = " + mPointNum); // Log.d("CheckView", "line_num = " + mLineNum); // Log.d("CheckView", "text_length = " + mTextLength); // Log.d("CheckView", "text_color = " + mTextColor); // Log.d("CheckView", "text_size = " + mTextSize); // Log.d("CheckView", "bg_color = " + mBgColor);}public void onDraw(Canvas canvas) {// 生成驗證碼 // mCheckCode = makeCheckCode();// 設置二維碼背景色canvas.drawColor(mBgColor);final int height = getHeight();// 獲得CheckView控件的高度final int width = getWidth();// 獲得CheckView控件的寬度if (mTextLength==0){return;}int dx = width / mTextLength / 2;char[] checkNum = mCheckCode.toCharArray();for (int i = 0; i < mTextLength; i++) {// 繪制驗證控件上的文本canvas.drawText("" + checkNum[i], dx, getPositon(height), mTempPaint);dx += width / (mTextLength + 1);}int[] line;for (int i = 0; i < mLineNum; i++) {// 劃線line = getLine(height, width);canvas.drawLine(line[0], line[1], line[2], line[3], mTempPaint);}// 繪制小圓點int[] point;for (int i = 0; i < mPointNum; i++) {// 畫點point = getPoint(height, width);canvas.drawCircle(point[0], point[1], 1, mTempPaint);}}/*** 生成新的驗證碼*/public void invaliChenkCode(String sss) {mCheckCode = sss;mTextLength = sss.length();invalidate();}public String getCheckCode() {return mCheckCode;}/*** 產生隨機驗證碼** @return*/public String makeCheckCode() {StringBuffer sb = new StringBuffer();for (int i = 0; i < mTextLength; i++) {int temp = (int) (Math.random() * 10);sb.append(temp);}return sb.toString();}/*** 計算驗證碼的繪制y點位置** @param height 傳入CheckView的高度值* @return*/public int getPositon(int height) {int tempPositoin = (int) (Math.random() * height);if (tempPositoin < 50) {tempPositoin += 50;}return tempPositoin;}/*** 隨機產生劃線的起始點坐標和結束點坐標** @param height 傳入CheckView的高度值* @param width 傳入CheckView的寬度值* @return 起始點坐標和結束點坐標*/public static int[] getLine(int height, int width) {int[] tempCheckNum = {0, 0, 0, 0};for (int i = 0; i < 4; i += 2) {tempCheckNum[i] = (int) (Math.random() * width);tempCheckNum[i + 1] = (int) (Math.random() * height);}return tempCheckNum;}/*** 隨機產生點的圓心點坐標** @param height 傳入CheckView的高度值* @param width 傳入CheckView的寬度值* @return*/public static int[] getPoint(int height, int width) {int[] tempCheckNum = {0, 0, 0, 0};tempCheckNum[0] = (int) (Math.random() * width);tempCheckNum[1] = (int) (Math.random() * height);return tempCheckNum;} }

?

<com.tianxinyw.mapclient.views.CheckViewandroid:id="@+id/mycheckview"android:layout_width="100dp"android:layout_height="35dp"android:layout_marginRight="6dp"kongqw:text_size="20dp"kongqw:line_num="7"kongqw:point_num="100"kongqw:bg_color="#3B88DA"/>

?

mycheckview.invaliChenkCode(7+"—"+2+"="+"?");

總結

以上是生活随笔為你收集整理的Android 实现验证码效果图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。