91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .java
    金幣: 2
    下載: 1 次
    發布日期: 2022-09-20
  • 語言: Java
  • 標簽: 解鎖??android??九點式??

資源簡介

常見的手機圖案解鎖自定義view 九個點形式

資源截圖

代碼片段和文件信息

package?com.cc.library.view;

import?android.content.Context;
import?android.graphics.Canvas;
import?android.graphics.Color;
import?android.graphics.Paint;
import?android.graphics.Path;
import?android.location.Location;
import?android.util.AttributeSet;
import?android.util.Log;
import?android.view.MotionEvent;
import?android.view.View;
import?android.view.ViewTreeObserver;

/**
?*?圖案解鎖view
?*?Created?by?zhangyu?on?2016-07-15?15:05.
?*/
public?class?UnlockView?extends?View?{
????private?static?final?String?TAG?=?“UnlockView“;
????//view寬高
????private?float?width?height;
????//平均寬高(分三份)
????private?float?averageWidth?averageHeight;
????//九個點的位置數據從左到右、從上到下?123...789
????Location[]?locations?=?new?Location[9];
????//圓圈半徑
????private?float?radius;
????//繪制密碼
????private?int[]?drawingPwd?=?new?int[9];
????//正確的密碼
????private?int[]?rightPwd;
????//畫筆
????private?Paint?whitePaint?cyanPaint;
????//已經繪制過了的點個數
????private?int?drawedNumber;
????//當前正被觸摸的點
????private?Location?nowTouchedPosition?=?new?Location();
????//監聽
????private?UnlockListener?unlockListener;


????public?void?setUnlockListener(UnlockListener?unlockListener)?{
????????this.unlockListener?=?unlockListener;
????}

????public?UnlockView(Context?context)?{
????????super(context);
????????init();
????}

????public?UnlockView(Context?context?AttributeSet?attrs)?{
????????super(context?attrs);
????????init();
????}

????public?UnlockView(Context?context?AttributeSet?attrs?int?defstyleAttr)?{
????????super(context?attrs?defstyleAttr);
????????init();
????}


????private?void?init()?{
????????ViewTreeObserver?vto?=?getViewTreeObserver();
????????vto.addOnGlobalLayoutListener(new?ViewTreeObserver.OnGlobalLayoutListener()?{
????????????@Override
????????????public?void?onGlobalLayout()?{
????????????????height?=?getHeight();
????????????????width?=?getWidth();
????????????????Log.d(TAG?“width?=?“?+?width?+?“??height?=?“?+?height);
????????????????averageWidth?=?width?/?3f;
????????????????averageHeight?=?height?/?3f;
????????????????radius?=?averageHeight?>?averageWidth???averageWidth?/?5f?:?averageHeight?/?5f;

????????????????initLocation();
????????????????invalidate();
????????????}
????????});

????????whitePaint?=?new?Paint();
????????whitePaint.setAntiAlias(true);
????????whitePaint.setColor(Color.parseColor(“#ffffff“));
????????whitePaint.setstyle(Paint.style.STROKE);

????????cyanPaint?=?new?Paint();
????????cyanPaint.setAntiAlias(true);
????????cyanPaint.setColor(Color.parseColor(“#4169E1“));
????????cyanPaint.setstyle(Paint.style.STROKE);

????????initDrawingPwd();
????}

????private?void?drawStart()?{
????????drawedNumber?=?0;
????}

????private?void?drawOver()?{
????????//debug
????????StringBuffer?sb?=?new?StringBuffer();
????????for?(int?i?=?0;?i?????????????sb.append(drawingPwd[i]?+?““);
????????}
????????Log.i(TAG?“drawingPwd:“?+?sb.toStrin

評論

共有 條評論