using System; //using static Com.Hdl.Widget.Gesturelock.GestureLockView; namespace Shared { /// /// GestureLockView /// public class GestureLockView : View { /// /// 当前视图 /// /// The GestureLockView. Com.Hdl.Widget.Gesturelock.GestureLockView mHDLGestureLockView { get { return AndroidView as Com.Hdl.Widget.Gesturelock.GestureLockView; } set { AndroidView = value; } } /// /// 构造函数 /// public GestureLockView() { mHDLGestureLockView = new Com.Hdl.Widget.Gesturelock.GestureLockView(Application.Activity); //mHDLGestureLockView.ResetGesture(); mOnLockVerifyListener = new OnLockVerifyListener(this); mHDLGestureLockView.SetOnLockVerifyListener(mOnLockVerifyListener); //mHDLGestureLockView.Measure //mHDLGestureLockView. } public void setinvalidate() { mHDLGestureLockView.Invalidate(); } /// /// 设置正确和普通时的颜色 /// /// 线颜色 public uint LockViewCorrectColor { set { byte r, g, b, a; r = (byte)(value / 256 / 256 % 256); g = (byte)(value / 256 % 256); b = (byte)(value % 256); a = (byte)(value / 256 / 256 / 256 % 256); mHDLGestureLockView.SetMatchedPathColor(Android.Graphics.Color.Argb(a, r, g, b)); mHDLGestureLockView.SetTouchedPathColor(Android.Graphics.Color.Argb(a, r, g, b)); } } /// /// 设置错误时的颜色 /// /// 线颜色 public uint LockViewErrorColor { set { byte r, g, b, a; r = (byte)(value / 256 / 256 % 256); g = (byte)(value / 256 % 256); b = (byte)(value % 256); a = (byte)(value / 256 / 256 / 256 % 256); mHDLGestureLockView.SetUnmatchedPathColor(Android.Graphics.Color.Argb(a, r, g, b)); } } /// /// 显示手势解锁view 是否显示正确 /// public void showCorrectStatus(bool isTrue) { if (isTrue) { mHDLGestureLockView.SetLockViewMatchedState(Java.Lang.Boolean.True); } else { mHDLGestureLockView.SetLockViewMatchedState(Java.Lang.Boolean.False); } } /// /// Action /// public Action OnLockVerifyEvent; /// /// OnProgressChangeListener 继承响应事件 /// OnLockVerifyListener mOnLockVerifyListener; public class OnLockVerifyListener : Java.Lang.Object, Com.Hdl.Widget.Gesturelock.GestureLockView.IOnLockVerifyListener { GestureLockView _GestureLockView; public OnLockVerifyListener(GestureLockView view) { _GestureLockView = view; } public void OnGestureFinished(string selectNumStr, int selectCount) { _GestureLockView.OnLockVerifyEvent?.Invoke(selectNumStr, selectCount); } public void OnGestureSelected(int p0) { } } } }