亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

手勢密碼

2019-11-09 15:07:27
字體:
來源:轉載
供稿:網友
package com.xiaoyu.shoushi_pass_exercise;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.Toast;import java.util.ArrayList;import java.util.List;/** * 1.類的用途: * 2.作者:段玉 * 3.時間:2017/2/8 07 * 4.郵箱:1239959892@QQ.com */public class Shou_Shi extends View {    //畫筆顏色    public final static int Before_Color = Color.parseColor("#FAEB76");    public final static int After_Color = Color.parseColor("#000000");    //畫圓集合    List<Circle> circleList = new ArrayList<>();    //畫線的集合    List<Circle> lineList = new ArrayList<Circle>();   //獲取寬高    PRivate int width;    private int height;    //半徑    private int radio;    private Paint paint;    public Shou_Shi(Context context) {        super(context);    }    public Shou_Shi(Context context, AttributeSet attrs) {        super(context, attrs);    }    public Shou_Shi(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        width = getWidth();        height = getHeight();        radio = width / 10;        addlist();        drawCircle(canvas);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        switch (event.getAction()){            case MotionEvent.ACTION_DOWN:            {            }                break;            case MotionEvent.ACTION_MOVE:            {                int x = (int) event.getX();                int y = (int) event.getY();                Log.d("段玉",x+"---"+y);                //坐標轉換                for (int i = 0; i < circleList.size(); i++) {                    int xx = (int) Math.pow((x - circleList.get(i).x), 2);                    int yy = (int) Math.pow((y - circleList.get(i).y),2);                    int num = xx + yy;                    //根據勾股定力判斷                    if (num <= Math.pow(radio,2)){                        //重新設置畫筆顏色                        circleList.get(i).color = After_Color;                        //設置為選中狀態                        circleList.get(i).isSelect = true;                        //判斷是否存在,避免加重復                        Boolean isflag = false;                        for (int j = 0; j < lineList.size(); j++) {                            //通過數字判斷存在不存在                            if (circleList.get(i).number == lineList.get(j).number){                                isflag = true;                            }                        }                        //否則就加入                        if (isflag == false){                            Circle circle = new Circle();                            circle.x = circleList.get(i).x;                            circle.y = circleList.get(i).y;                            circle.color = circleList.get(i).color;                            circle.number = circleList.get(i).number;                            lineList.add(circle);                        }                        //同時刷新ui                        postInvalidate();                    }                }            }                break;            case MotionEvent.ACTION_UP:            {                String passWord = "";                for (int i = 0; i < lineList.size(); i++) {                    passWord += lineList.get(i).number+"";                }                Toast.makeText(getContext(),"當前密碼是"+passWord, Toast.LENGTH_SHORT).show();                //清理屏幕                for (int i = 0; i < circleList.size(); i++) {                    circleList.get(i).color = Before_Color;                    circleList.get(i).isSelect = false;                }                //清空集合                lineList.clear();                //同時刷新ui                postInvalidate();            }                break;        }        return true;    }    private void drawCircle(Canvas canvas) {        //實例化畫筆        paint = new Paint();        //設置畫筆抗鋸齒        paint.setAntiAlias(true);        //設置畫筆寬度        paint.setStrokeWidth(3);        //設置空心圓        paint.setStyle(Paint.Style.STROKE);        for (int i = 0; i < circleList.size(); i++) {            //設置畫筆顏色            paint.setColor(circleList.get(i).color);            //畫圓            canvas.drawCircle(circleList.get(i).x,circleList.get(i).y,circleList.get(i).radio,paint);        }        boolean isFirst = false;        int startX = 0;        int startY = 0;        //畫線的方法        for (int i = 0; i < lineList.size(); i++) {            if (isFirst == false){                isFirst = true;                startX = lineList.get(i).x;                startY = lineList.get(i).y;            }else{                paint.setColor(lineList.get(i).color);                //畫線                canvas.drawLine(startX,startY,lineList.get(i).x,lineList.get(i).y,paint);                startX = lineList.get(i).x;                startY = lineList.get(i).y;            }        }    }    private void addlist() {        for (int i = 1; i <= 9; i++) {            //實例化對象            Circle circle = new Circle();            if (i <= 3){                circle.y = height/2 - radio*3;            }else if (i > 3 && i <= 6){                circle.y = height / 2;            }else{                circle.y = height/2 +radio*3;            }            if (i == 1 || i == 4 || i == 7){                circle.x = radio * 2;            }else if (i == 2 || i == 5 || i == 8){                circle.x = radio * 5;            }else{                circle.x = radio * 8;            }            circle.radio = radio;            circle.isSelect = false;            circle.color = Before_Color;            circle.number = i;            circleList.add(circle);        }    }}//一下就是簡單的xml
<?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"    android:background="#00ff00"    tools:context="com.xiaoyu.shoushi_pass_exercise.MainActivity">    <com.baway.shoushi_pass_exercise.Shou_Shi        android:layout_width="match_parent"        android:layout_height="match_parent"/></RelativeLayout> 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线观看一区二区| 精品亚洲一区二区三区| 日韩网站免费观看| 亚洲aⅴ男人的天堂在线观看| 亚洲精品中文字| 国产成人鲁鲁免费视频a| 日韩中文字幕视频在线| 精品亚洲永久免费精品| 精品久久久久国产| 国产精品福利观看| 国产亚洲成av人片在线观看桃| 久久精品色欧美aⅴ一区二区| 国产日韩精品电影| 久久久免费精品| 日韩风俗一区 二区| 成人有码在线视频| 国产一区二区美女视频| 日韩中文字幕在线精品| 九九久久综合网站| 91精品国产亚洲| 国产精品男人的天堂| 亚洲精品一区中文字幕乱码| 亚洲国产天堂久久综合网| 成人精品一区二区三区电影黑人| 亚洲天堂色网站| 在线观看日韩欧美| 亚洲国产成人精品久久久国产成人一区| 亚洲欧美精品中文字幕在线| 色99之美女主播在线视频| 国产91ⅴ在线精品免费观看| 久久成人人人人精品欧| 九九久久久久99精品| yellow中文字幕久久| 91精品久久久久| zzijzzij亚洲日本成熟少妇| 91福利视频在线观看| 久久夜色精品国产欧美乱| 亚洲字幕一区二区| 高潮白浆女日韩av免费看| 国产精品激情自拍| 亚洲大胆人体在线| 亚洲人午夜精品| 中文字幕在线成人| 欧美一区二区视频97| 蜜月aⅴ免费一区二区三区| 欧美在线视频在线播放完整版免费观看| 91精品国产网站| 97婷婷大伊香蕉精品视频| 欧美激情一二区| 日韩在线免费观看视频| 日韩久久精品成人| 亚洲欧美国产一区二区三区| 中文字幕欧美精品在线| 欧美激情中文字幕乱码免费| 成人xxxxx| 欧美成人合集magnet| 欧美日韩国产综合新一区| 欧美黄色免费网站| 亚洲欧美激情另类校园| 国产视频在线观看一区二区| 国产精品你懂得| 不卡伊人av在线播放| 亚洲黄色成人网| www.99久久热国产日韩欧美.com| 亚洲精品自产拍| 91精品久久久久久久久中文字幕| 日韩国产高清污视频在线观看| 国产成人综合一区二区三区| 欧美成人免费全部观看天天性色| 777精品视频| 国产精品高清在线观看| 久久人人97超碰精品888| 97视频人免费观看| 亚洲视频在线免费观看| 日韩在线观看免费av| 日韩精品福利在线| 亚洲最大av在线| 中文字幕亚洲情99在线| 日韩精品极品在线观看播放免费视频| 欧美激情手机在线视频| 色偷偷偷亚洲综合网另类| 欧美在线性爱视频| 精品日韩视频在线观看| 伦伦影院午夜日韩欧美限制| 欧美一级在线亚洲天堂| 国产日产欧美精品| 日韩免费av在线| 欧美大片在线影院| 欧美一级高清免费| 精品亚洲夜色av98在线观看| 国产精品va在线| 欧美日韩午夜剧场| 欧美成人中文字幕在线| 在线观看久久久久久| 欧美性猛交丰臀xxxxx网站| 91性高湖久久久久久久久_久久99| 亚洲精品按摩视频| 成人激情视频在线播放| 午夜精品久久17c| 在线中文字幕日韩| 欧美电影免费观看电视剧大全| 欧美人与性动交| 亚洲另类激情图| 精品少妇v888av| 激情久久av一区av二区av三区| 在线丨暗呦小u女国产精品| 欧美日韩午夜剧场| 欧美自拍视频在线观看| 亚洲精品电影网在线观看| 精品国产乱码久久久久酒店| 亚洲欧美国产制服动漫| 青青a在线精品免费观看| 亚洲欧美一区二区激情| 欧美激情伊人电影| 97热精品视频官网| 日本精品性网站在线观看| 成人免费大片黄在线播放| 91在线高清视频| 91精品在线一区| 亚洲国产欧美久久| 国产69久久精品成人看| 欧美性受xxxx黑人猛交| 亚洲天堂男人天堂女人天堂| 欧美在线观看日本一区| 久久中文字幕在线视频| 欧美性资源免费| 久久人91精品久久久久久不卡| 欧美贵妇videos办公室| 57pao成人国产永久免费| 国产精品人成电影在线观看| 中国china体内裑精亚洲片| 欧美中文字幕视频| 中文字幕欧美专区| 欧美成人第一页| 国产欧美日韩中文字幕在线| 国产精品免费小视频| 亚洲性av在线| 精品国产鲁一鲁一区二区张丽| 中文字幕久热精品视频在线| 欧美视频在线免费| 亚洲已满18点击进入在线看片| 国产精品视频网站| 日韩欧美高清在线视频| 国产精品久久久久久久久影视| 欧美乱大交xxxxx另类电影| 九九热最新视频//这里只有精品| 亚洲精品在线不卡| 精品日本高清在线播放| 亚洲欧美日韩国产中文专区| 亚洲美女免费精品视频在线观看| 91av在线看| 欧美黑人xxxⅹ高潮交| 亚洲欧洲美洲在线综合| 精品国内自产拍在线观看| 欧美专区福利在线| 亚洲精品一区二区三区婷婷月| 国内精品美女av在线播放| 国产精品久久久久久网站| 久久午夜a级毛片| 日韩欧美国产一区二区| 国产婷婷成人久久av免费高清| 日韩av在线播放资源| 久久69精品久久久久久久电影好| 色偷偷偷综合中文字幕;dd|