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

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

手勢密碼

2019-11-09 16:22:05
字體:
來源:轉載
供稿:網友
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
国产成人亚洲综合| 亚洲成人三级在线| 久久深夜福利免费观看| 538国产精品一区二区在线| 欧美自拍大量在线观看| 国产在线观看不卡| 国产精品久久久久久久久免费| 欧美精品久久久久久久久久| 欧美激情综合色| 成人欧美一区二区三区在线| 裸体女人亚洲精品一区| 中文日韩电影网站| 亚洲精品av在线播放| 亚洲第一av网| 国产精品亚洲美女av网站| 国产成人鲁鲁免费视频a| 日韩av在线影院| 亚洲free性xxxx护士hd| 亚洲九九九在线观看| 欧美成人亚洲成人| 亚洲人午夜精品| 国产精品久久久久久久一区探花| 国产精品69精品一区二区三区| 亚洲一品av免费观看| 亚洲最大的成人网| 97超级碰碰碰久久久| 亚洲国产精品嫩草影院久久| 欧美日韩国产成人在线观看| 国产午夜精品美女视频明星a级| 亚洲韩国日本中文字幕| 日韩av大片免费看| 国产欧美婷婷中文| 91亚洲国产成人精品性色| 国产成人久久精品| 97精品国产91久久久久久| 国产成人综合久久| 国产视频在线一区二区| 亚洲欧洲视频在线| 91在线无精精品一区二区| 欧美最猛性xxxxx(亚洲精品)| 亚洲18私人小影院| 青草成人免费视频| 91久久在线播放| 亚洲免费一级电影| 欧美又大又硬又粗bbbbb| 91av国产在线| 亚洲男子天堂网| 欧美黑人极品猛少妇色xxxxx| 久久久久久久久国产精品| 中文字幕欧美在线| 91av在线播放视频| 国产精品高潮视频| 日韩欧美aⅴ综合网站发布| 国产精品成人aaaaa网站| 粗暴蹂躏中文一区二区三区| 亚洲欧美日韩一区在线| 欧美一级视频免费在线观看| 2018日韩中文字幕| 欧美亚洲国产日本| 国产精品视频免费观看www| 亚洲欧美日韩直播| 中国china体内裑精亚洲片| 精品久久久久久亚洲精品| 久久影视电视剧凤归四时歌| 日本最新高清不卡中文字幕| 国产欧美日韩丝袜精品一区| 国产精品r级在线| 亚洲国产99精品国自产| 97久久精品视频| 亚洲国产精品成人一区二区| 福利微拍一区二区| 亚洲一区二区三区四区在线播放| 精品一区二区三区四区在线| 亚洲国产99精品国自产| 中文字幕久热精品在线视频| 成人欧美一区二区三区在线| 国产成人极品视频| 久久精品色欧美aⅴ一区二区| www.99久久热国产日韩欧美.com| 日韩在线观看免费全| 欧美专区日韩视频| 国产精品成人一区二区| 尤物精品国产第一福利三区| 欧美巨乳在线观看| 91久久久亚洲精品| 欧美高清在线观看| 国产精品第一区| 国产精品国产福利国产秒拍| 久久免费少妇高潮久久精品99| 日韩一区二区三区xxxx| 中文字幕自拍vr一区二区三区| 国产精品国产三级国产专播精品人| 成人国产亚洲精品a区天堂华泰| 宅男66日本亚洲欧美视频| 国产精品久久久久福利| 欧美小视频在线| 久久影视电视剧免费网站| 欧美精品亚州精品| 2021久久精品国产99国产精品| 亚洲精品福利在线观看| 亚洲欧洲在线免费| 久久国产精品久久久久久久久久| 国产精品成人观看视频国产奇米| 亚洲免费一级电影| 精品久久中文字幕久久av| 国产精品自产拍在线观看| 欧美一区二区色| 亚洲第一精品自拍| 成人精品久久一区二区三区| 国产精品av在线| 久久久久久久色| 欧美大片在线影院| 久久影院资源网| 国产成人涩涩涩视频在线观看| 欧美精品亚州精品| 啊v视频在线一区二区三区| 国产精品99久久久久久www| 国产欧洲精品视频| 性视频1819p久久| 亚洲欧美国产精品| 韩国欧美亚洲国产| 日韩欧美精品在线观看| 在线电影欧美日韩一区二区私密| 性欧美xxxx交| 色婷婷综合成人| 久久精品成人欧美大片| 国产欧美一区二区三区视频| 色综合久久精品亚洲国产| 91久久精品美女高潮| 欧美日韩国产区| 亚洲一区亚洲二区亚洲三区| 欧美激情啊啊啊| 亚洲欧洲自拍偷拍| 成人免费大片黄在线播放| 自拍偷拍亚洲在线| 亚洲xxxx做受欧美| 97欧美精品一区二区三区| 俺也去精品视频在线观看| 久热精品视频在线免费观看| 日韩av在线影院| 97在线视频观看| 91视频国产一区| 91免费看国产| 久久99精品久久久久久青青91| 国产精品一区二区久久国产| 国语自产精品视频在免费| 中文字幕最新精品| 亚洲精品资源美女情侣酒店| 国产精品黄色av| 国产精品日韩电影| 蜜月aⅴ免费一区二区三区| 亚洲一区二区福利| 国产精品99久久久久久人| 草民午夜欧美限制a级福利片| 久久不射热爱视频精品| 日本久久久久久久久| 欧美放荡办公室videos4k| 国产极品精品在线观看| 久久99国产综合精品女同| 国产成人精品在线观看| 国产欧美欧洲在线观看| 国产日韩欧美黄色| 久久成年人免费电影| 国产精品久久9|