using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
using Android.App;
|
using Android.Content;
|
using Android.OS;
|
using Android.Runtime;
|
using Android.Views;
|
using Android.Widget;
|
using Android.Util;
|
|
namespace Shared
|
{
|
/// <summary>
|
/// ʱ¼äÊÓͼ
|
/// </summary>
|
public class TimeView : View
|
{
|
/// <summary>
|
/// µ±Ç°ÊÓͼ
|
/// </summary>
|
/// <value>The android text.</value>
|
internal AndroidTimePicker currentAndroidTimePicker
|
{
|
get
|
{
|
return this.AndroidView as AndroidTimePicker;
|
}
|
set
|
{
|
this.AndroidView = value;
|
}
|
}
|
|
|
/// <summary>
|
/// ʱ
|
/// </summary>
|
public int Hour {
|
get { return currentAndroidTimePicker.CurrentHour.IntValue(); }
|
set { currentAndroidTimePicker.CurrentHour = new Java.Lang.Integer(value); }
|
}
|
/// <summary>
|
/// ·Ö
|
/// </summary>
|
public int Minute {
|
get { return currentAndroidTimePicker.CurrentMinute.IntValue(); }
|
set { currentAndroidTimePicker.CurrentMinute =new Java.Lang.Integer(value); }
|
}
|
|
/// <summary>
|
/// ÊÓͼ
|
/// </summary>
|
public TimeView()
|
{
|
currentAndroidTimePicker = new AndroidTimePicker(Application.Activity);
|
|
|
}
|
|
internal class AndroidTimePicker : Android.Widget.TimePicker
|
{
|
#region
|
public AndroidTimePicker(Context context)
|
: base(context)
|
{
|
//SetTextColor(Android.Graphics.Color.White);
|
//SetPadding(0, 0, 0, 0);
|
//TextAlignment = Android.Views.TextAlignment.Center;
|
}
|
|
public AndroidTimePicker(Context context, IAttributeSet attrs)
|
: base(context, attrs)
|
{ }
|
|
protected AndroidTimePicker(IntPtr javaReference, JniHandleOwnership transfer)
|
: base(javaReference, transfer)
|
{ }
|
|
public AndroidTimePicker(Context context, IAttributeSet attrs, int defStyle)
|
: base(context, attrs, defStyle)
|
{ }
|
|
#endregion
|
|
/// <summary>
|
/// µã»÷µ¯Æðʼþ
|
/// </summary>
|
public Action<AndroidTimePicker, MouseEventArgs> MouseUPEventHandler;
|
/// <summary>
|
/// µã»÷°´ÏÂʼþ
|
/// </summary>
|
public Action<AndroidTimePicker, MouseEventArgs> MouseDownEventHandler;
|
/// <summary>
|
/// µã»÷ʼþ
|
/// </summary>
|
/// <returns>The touch event.</returns>
|
/// <param name="e">E.</param>
|
public override bool OnTouchEvent(Android.Views.MotionEvent e)
|
{
|
if (e.Action == Android.Views.MotionEventActions.Down && MouseDownEventHandler != null)
|
{
|
MouseDownEventHandler(this, new MouseEventArgs { X = e.GetX(), Y = e.GetY() });
|
}
|
else if (e.Action == Android.Views.MotionEventActions.Up && MouseUPEventHandler != null)
|
{
|
MouseUPEventHandler(this, new MouseEventArgs { X = e.GetX(), Y = e.GetY() });
|
}
|
return base.OnTouchEvent(e);
|
}
|
/// <summary>
|
/// ´óС±ä»¯Ê¼þ
|
/// </summary>
|
public Action<AndroidTimePicker, Size> SizeChangeEventHandler;
|
/// <summary>
|
/// λÖò¼¾Ö
|
/// </summary>
|
public override Android.Views.ViewGroup.LayoutParams LayoutParameters
|
{
|
get
|
{
|
return base.LayoutParameters;
|
}
|
set
|
{
|
var layoutParams = base.LayoutParameters;
|
base.LayoutParameters = value;
|
|
if (layoutParams == null || layoutParams.Width != value.Width || layoutParams.Height != value.Height)
|
{
|
SizeChangeEventHandler?.Invoke(this, new Size(LayoutParameters.Width, LayoutParameters.Height));
|
}
|
}
|
}
|
}
|
|
}
|
}
|