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)
{
}
}
}
}