This article shows how to create and run your first AGENT Smartwatch Application, create a Simple AGENT Smartwatch to add our custom fonts, Add Images, Draw Text and Image and create the All in One App for AGENT Smartwatch.
Introduction
* Kindly view my Youtube video to learn AGENT Smartwatch All in One Apps using C#.
In this article, we will see how to create a simple app for AGENT Smartwatch. Why I have selected AGENT Smart to support both Windows, Android and IOS mobiles and also SDK for AGENT Smartwatch was been based on .NET Micro Framework. .NET Micro Framework can be used to develop embedded device applications. For more details regarding the AGENT Smartwatch, check their official website here.
Prerequisites: Download all the below prerequisites and install it in your computer.
http://www.agentwatches.com/downloads/agentsdk.exe
- Visual Studio 2015 - You can download it from this link.
- .NET Micro Framework SDK 4.3 for VS2015 project
- AGENT SDK
- Tiny Font Tool GUI
In this article, we will see how to:
- create and run our first AGENT Smartwatch Application
- create a Simple AGENT Smartwatch to add our custom fonts, Add Images, Draw Text and Image
- create my All in One App for AGENT Smart watch
What is Shanu All in One App for AGENT Smart Watch?
Smartwatch makes our life more easy and comfortable. If you ask me a question that we already have Smartphones, so why do we need Smartwatches, then I will answer as it’s important to use smartwatches as well as smartphones in today’s busy world. For example, let’s consider now we are in a meeting and at the same time, we are getting some continuous calls. We were not able to check for who’s calling at the moment. If suppose, it’s a very important and urgent call, then we will be missing it without seeing who’s calling. If consider, we are using the Smartwatch, then without disturbing the meeting, we can check for who’s calling and if it’s a very important call, then we can answer it.
To make things easier and more convenient, I have made the All in One App using AGENT Smart watch. In my All in One App for Smartwatch, I have five different functionalities. They are:
- Simple Text Animation
- Display Date and Time
- Display Today's Appointment
- Display Animation for simple Game
- Stopwatch
Using the Code
1) Create and Run Our First AGENT Smartwatch Application
Kindly download and install all the prerequisites need to create our first AGENT Smartwatch application using C#. After you have installed all the above prerequisites:
Click Start -> Programs-> Select Visual Studio 2015 - Click Visual Studio 2015
Click New -> Project - > Select Micro Framework from template -> Click Windows Application. Select your project folder and give proper name for your project ->Click OK.
Once we have created our AGENT Smartwatch Application, we can see in the Solution Explorer that it will contain program.cs and Resources.resx. The program.cs class file is the main file where we write all our coding to create our Apps. The program.cs will have the Main
method from where the program will start executing. The Resources.resx is used to add resources like Image, Tiny Font, String, etc.
Default Target Framework: The default target language will be .NET Micro Framework 4.3. When we right click our project and click on properties, we can see the target framework will be selected as .NET Micro Framework 4.3.
Default Deployment: Default deployment device will be selected as AGENT Emulator. When we run the program, we can see the output in the AGENT Emulator.
Program.cs
I will recommend this website which is a very good place for any beginner to write code with AGENT Smartwatch using C# from this link which was written by Matt from RougrCode.
By default, when we create the program, the Program.cs will contain some set of code to display the output as “Hello World”. The Program.cs will add default Header files to run the program. Here, we can see the set of default header files added.
.NET Micro Framework will have very limited functionality compared to our .NET Framework. So we cannot use all references which we are using in our normal .NET Framework.
using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
Main Method
By default, when we create main
method, it will create a window to display the default “hello world
” text.
public static void Main()
{
Program myApplication = new Program();
Window mainWindow = myApplication.CreateWindow();
GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
myApplication.Run(mainWindow);
}
In Createwindow
method, the default code will be added to add the Text to the window and loading the text content from the resource File. Note to see our resource string, we can double click on “Resources.resx” file from the Solution Explorer. If we want, we can add more string
or we can change the Hello World
text as we like to display different text.
private Window mainWindow;
public Window CreateWindow()
{
mainWindow = new Window();
mainWindow.Height = SystemMetrics.ScreenHeight;
mainWindow.Width = SystemMetrics.ScreenWidth;
Text text = new Text();
text.Font = Resources.GetFont(Resources.FontResources.small);
text.TextContent =
Resources.GetString(Resources.StringResources.String1);
text.HorizontalAlignment =
Microsoft.SPOT.Presentation.HorizontalAlignment.Center;
text.VerticalAlignment =
Microsoft.SPOT.Presentation.VerticalAlignment.Center;
mainWindow.Child = text;
mainWindow.AddHandler
(Buttons.ButtonUpEvent, new RoutedEventHandler(OnButtonUp), false);
mainWindow.Visibility = Visibility.Visible;
Buttons.Focus(mainWindow);
return mainWindow;
}
Here in this method, after creating the main window, the eventhandler
will be added for the AGENT Smart watch button click events.
OnButtonUp Event
: This event will be raised whenever the user clicks on buttons of the AGENT Smart watch. The AGENT Smart watch will contain five buttons, three buttons on the right and two buttons on the left.
private void OnButtonUp(object sender, RoutedEventArgs evt)
{
ButtonEventArgs e = (ButtonEventArgs)evt;
Debug.Print(e.Button.ToString());
}
Run and Test Our First Program
Without writing any code, we can run our first AGENT Smartwatch application to display the “Hello World
” text display.
So we succeeded in creating our first AGENT Smart watch Application and testing it.
2) Create a Simple AGENT Smartwatch to Add our Custom Fonts, Add Images, Draw Text and Image
Follow all the above steps to create your AGENT Smartwatch application.
We have already seen that when we create our AGENT Smartwatch application, it will add default code to create a Windows and display the “Hello world
” text.
Now let’s see how to Draw Text, Add Image and add Tiny font to display different font text in our AGENT Smartwatch.
By default, we will have this header file:
using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
I will be adding few more references to the project to draw text and Image and to add colors and for using Thread
.
using Microsoft.SPOT.Presentation.Media;
using System.Threading;
Next, we will delete all the code part except the main
method. Here, instead of creating the new Window, I will be drawing text and Image from main
method.
So now my program.cs file will look like this:
using System.Diagnostics;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Media;
using System.Threading;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation.Controls;
namespace test
{
public class Program : Microsoft.SPOT.Application
{
public static void Main()
{
}
}
}
Here, first will create object for bitmap
to drawtext
.
static Bitmap _myFace;
Inside the main
method, we will draw text to display our content. Here, we can see first, I will create the bitmap
Image with maxwidth
and maxheight
.
We will be adding font from the resource file. Default small font will added in our resource file.
Here now, I have used the default font to display the text. Using the DrawText
, I will draw the text in desired location which I have given. The Thread.Sleep()
was used to display the text continuously.
public class Program : Microsoft.SPOT.Application
{
static Bitmap _myFace;
public static void Main()
{
_myFace = new Bitmap(Bitmap.MaxWidth, Bitmap.MaxHeight);
_myFace.Clear();
Font fontS = Resources.GetFont(Resources.FontResources.small);
_myFace.DrawText("SHANU", fontS, Color.White, 12, 10);
_myFace.Flush();
Thread.Sleep(Timeout.Infinite);
}
}
When we run the program, we can see the output as:
Adding Custom Fonts
By default, we will be having only one font in our application. We can also add our Custom fonts to our application from resource. Note we need to add only tiny font .To convert our normal font to Tiny font, there is a free tool available from this link, you can download and change any available fonts to Tiny font. Save the font to your folder and add the Tiny font to your resource file.
I have converted the Tahoma Font as tiny font and saved in my folder. Now let’s see how to add the tiny font in our application.
To add the Custom converted font, double click on our resource file and click Add Existing File. Select your new Converted Tahoma Tiny Font. Click Save for save changes.
In your main
method code, create new object for font to add your new font and draw the text.
public static void Main()
{
_myFace = new Bitmap(Bitmap.MaxWidth, Bitmap.MaxHeight);
_myFace.Clear();
Font fontS = Resources.GetFont(Resources.FontResources.small);
_myFace.DrawText("SHANU", fontS, Color.White, 12, 10);
Font font = Resources.GetFont(Resources.FontResources.ThahomaFont);
_myFace.DrawText("SHANU", font, Color.White, 12, 26);
_myFace.Flush();
Thread.Sleep(Timeout.Infinite);
}
When we run the program, we can see the output as:
Adding Image and Draw Image
To add image, double click on our resource file and click Add Existing File. Select your Image file and save it. I will be adding only GIF and JPEG images.
In your main method code, create new object for font to add your new font and draw the text. First, I will create the bitmap image from the Resource file and using the Draw Image, I will draw the image to the desired location. Note the last four points are used to crop the image and display.
public class Program : Microsoft.SPOT.Application
{
static Bitmap _myFace;
public static void Main()
{
_myFace = new Bitmap(Bitmap.MaxWidth, Bitmap.MaxHeight);
_myFace.Clear();
Font fontS = Resources.GetFont(Resources.FontResources.small);
_myFace.DrawText("SHANU", fontS, Color.White, 12, 10);
Font font = Resources.GetFont(Resources.FontResources.ThahomaFont);
_myFace.DrawText("SHANU", font, Color.White, 12, 26);
Bitmap myImage = new Bitmap
(Resources.GetBytes(Resources.BinaryResources.shanu),
Bitmap.BitmapImageType.Jpeg);
_myFace.DrawImage(40, 40, myImage, 0, 0, 128, 128);
_myFace.Flush();
Thread.Sleep(Timeout.Infinite);
}
}
When we run the program, we can see the output as:
Hope now you have a clearer idea of how to develop a simple Apps for AGENT Smartwatch. Next, we will see in detail how I have created my All in one App.
3) How to Create My All in One App for AGENT Smartwatch
As I have already explained in my All in One App, I have created five different functionalities in one app. They are:
- Simple Text Animation
- Display Date and Time
- Display Todays Appointment
- Display Animation for simple Game
- Stopwatch
We will see one by one in detail how to create using AGENT Smartwatch application development.
Create new project as mentioned above and I will be using the default create main window to display my name by default and in button click events, I will perform all the five different functionalities.
Add all header files:
using System;
using System.Diagnostics;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Media;
using System.Threading;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation.Controls;
Declare all the local variables. I will be using this variable to perform five different functionalities.
static Bitmap _myFace;
const int HEIGHT = 128;
const int WIDTH = 128;
static int _ButtonClickNumber = 0;
static Timer _TiimeDispTimer;
static int name1Xval = 2;
static int name1Yval = 20;
static int name2Xval = Bitmap.MaxWidth;
static int name2Yval = 70;
static int name3Xval = 10;
static int name3Yval = Bitmap.MaxHeight - 10;
static int ballXval = 50;
static int ballYval = 90;
static int manfaceXval = 10;
static int manfaceYval = 40;
static int leg1Xval = manfaceXval + 1;
static int leg1Yval = manfaceYval + 30;
static int leg1X1val = manfaceXval - 4;
static int leg1Y1val = manfaceYval + 54;
static int leg2Xval = manfaceXval + 1;
static int leg2Yval = manfaceYval + 30;
static int leg2X1val = manfaceXval + 4;
static int leg2Y1val = manfaceYval + 54;
static int goalXVal = 60;
static int goalYVal = 8;
Boolean cicked = false;
Boolean goals = false;
static int secounds = 0;
static int Miniutes = 0;
string secounds_str = "00";
string Miniutes_str = "00";
In main
method, we call the create Window
method to create the main
window and display default text as output.
public static void Main()
{
Program myApplication = new Program();
_myFace = new Bitmap(Bitmap.MaxWidth, Bitmap.MaxHeight);
Window mainWindow = myApplication.CreateWindow();
GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
myApplication.Run(mainWindow);
}
private Window mainWindow;
In Createwindow
method, I will create new window and add the default text to display.
Create new Timer with timer event to run every one second. Next, create a handler to perform the AGENT Smartwatch button Up events.
public Window CreateWindow()
{
mainWindow = new Window();
mainWindow.Height = SystemMetrics.ScreenHeight;
mainWindow.Width = SystemMetrics.ScreenWidth;
Text text = new Text();
text.Font = Resources.GetFont(Resources.FontResources.small);
text.TextContent =
Resources.GetString(Resources.StringResources.Name1);
text.HorizontalAlignment =
Microsoft.SPOT.Presentation.HorizontalAlignment.Center;
text.VerticalAlignment =
Microsoft.SPOT.Presentation.VerticalAlignment.Center;
mainWindow.Child = text;
mainWindow.AddHandler(Buttons.ButtonUpEvent,
new RoutedEventHandler(OnButtonUp), false);
mainWindow.Visibility = Visibility.Visible;
TimeSpan startTime =
new TimeSpan(0, 0, 0, 0,
DateTime.Now.Millisecond);
TimeSpan SecondsAdd =
new TimeSpan(0, 0, 0, 1, 0);
_TiimeDispTimer =
new Timer(UpdateTime, null,
startTime, SecondsAdd);
Buttons.Focus(mainWindow);
return mainWindow;
}
ButtonUp Event: As I have explained, AGENT Smartwatch will contain five buttons, three buttons on the right and two buttons on the left and each button will contain a unique Number.
- Right Top Watch Button – 38
- Right Middle Watch Button – 41
- Right Bottom Watch Button – 40
- Left Top Watch Button – 37
- Left Top Watch Button – 39
In this event, I will check for each button up unique number and call the desired function.
private void OnButtonUp(object sender, RoutedEventArgs evt)
{
ButtonEventArgs e = (ButtonEventArgs)evt;
Debug.Print(e.Button.ToString());
if (e.Button.ToString() == "38")
{
_ButtonClickNumber = 38;
}
else if (e.Button.ToString() == "41")
{
name1Xval = 6;
name2Xval = Bitmap.MaxWidth - 6;
name3Yval = Bitmap.MaxHeight - 10;
_ButtonClickNumber = 41;
showTime();
}
else if (e.Button.ToString() == "40")
{
_ButtonClickNumber = 40;
showAppointment();
}
else if (e.Button.ToString() == "37")
{
_ButtonClickNumber = 37;
cicked = false;
goals = false;
ballXval = 50;
ballYval = 90;
manfaceXval = 10;
manfaceYval = 40;
leg1Xval = manfaceXval + 1;
leg1Yval = manfaceYval + 30;
leg1X1val = manfaceXval - 4;
leg1Y1val = manfaceYval + 54;
leg2Xval = manfaceXval + 1;
leg2Yval = manfaceYval + 30;
leg2X1val = manfaceXval + 4;
leg2Y1val = manfaceYval + 54;
showAnimation();
}
else if (e.Button.ToString() == "39")
{
_ButtonClickNumber = 39;
secounds = 0;
Miniutes = 0;
secounds_str = "00";
Miniutes_str = "00";
spotWatch();
}
}
In my program, I will be displaying Time, Text Animation and Simple football game animation using Timer. In timer event, I will check for each button up number and call the function.
public void UpdateTime(object state)
{
if (_ButtonClickNumber == 41)
{
showTime();
}
else if (_ButtonClickNumber == 38)
{
showName();
}
else if(_ButtonClickNumber == 37)
{
showAnimation();
}
else if(_ButtonClickNumber == 39)
{
spotWatch();
}
}
showName()
: In this method, I will be displaying simple text animation.
In this method, I will be displaying simple text animation. I will display the text using DrawText
method and using timer, I will move the text from left to right, right to left and from bottom to top.
public void showName()
{
_myFace.Clear();
Font font = Resources.GetFont(Resources.FontResources.shanuName);
_myFace.DrawRectangle(Color.White, 1, 0, 0, Bitmap.MaxWidth,
Bitmap.MaxHeight, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawText(Resources.GetString(Resources.StringResources.Name1),
font, Color.White, name1Xval, name1Yval);
if(name1Xval<= Bitmap.MaxWidth)
{
name1Xval = name1Xval + 4;
}
else
{
name1Xval = 6;
}
_myFace.DrawText(Resources.GetString(Resources.StringResources.Name2),
font, Color.White, name2Xval, name2Yval);
if (name2Xval >= 0)
{
name2Xval = name2Xval - 4;
}
else
{
name2Xval = Bitmap.MaxWidth - 6;
}
_myFace.DrawText(Resources.GetString(Resources.StringResources.Name3),
font, Color.White, name3Xval, name3Yval);
if (name3Yval >= 0)
{
name3Yval = name3Yval - 4;
}
else
{
name3Yval = Bitmap.MaxHeight-10;
}
_myFace.Flush();
}
showTime()
: In this method, I will be displaying Date
and Time
.
In this method, I will be displaying today's Date
and Time
. Here, we can see that I have added two different custom fonts to display the date and time.
public void showTime()
{
_myFace.Clear();
Font font = Resources.GetFont(Resources.FontResources.shanuNumber);
Font fontS = Resources.GetFont(Resources.FontResources.shanuName);
_myFace.DrawRectangle(Color.White, 1, 0, 0, Bitmap.MaxWidth,
Bitmap.MaxHeight, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawText(DateTime.Now.ToString("yyyy-MM-dd"),
fontS, Color.White, 4, 20);
_myFace.DrawText(DateTime.Now.ToString("yyyy-MM-dd"),
fontS, Color.Black, 4, 21);
_myFace.DrawText(DateTime.Now.ToString("yyyy-MM-dd"),
fontS, Color.White, 4, 22);
_myFace.DrawText(DateTime.Now.ToString("HH:mm:ss"),
font, Color.White, 2, 70);
_myFace.DrawText(DateTime.Now.ToString("HH:mm:ss"),
font, Color.Black, 2, 71);
_myFace.DrawText(DateTime.Now.ToString("HH:mm:ss"),
font, Color.White, 2, 72);
_myFace.Flush();
}
showAppointment()
: This method will have today's Plan Schedule for the user.
In this method, I will be displaying today's Appointment for the user. First, I will be adding all of today's plan list in the Resource string like below:
In the method from this resource file will display Today's plan one by one using DrawText
method. I will also check for the current time with Appointment time. If current time is equal to Appointment time, then I will draw rectangle bar and line under text as alert to the user to indicate the user as its time to perform the current plan.
public void showAppointment()
{
_myFace.Clear();
Font fontB = Resources.GetFont(Resources.FontResources.NinaB);
Font fonts = Resources.GetFont(Resources.FontResources.small);
_myFace.DrawRectangle(Color.White, 1, 0, 0, Bitmap.MaxWidth,
Bitmap.MaxHeight, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawText(" Today's Plan", fontB, Color.White, 6, 6);
_myFace.DrawLine(Color.White, 1, 6, 27, 120, 27);
string hours = "12";
hours = (DateTime.Now.Hour % 12).ToString();
string apt1 = Resources.GetString
(Resources.StringResources.Appointment1);
string[] apt1Chk = apt1.Split(' ');
if(apt1Chk[0]== hours)
{
_myFace.DrawRectangle(Color.White,2, 4, 36, 4, 4, 0, 0,
Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawLine(Color.White, 1, 20, 48, 70, 48);
}
_myFace.DrawText(apt1, fonts, Color.White, 14, 34);
string apt2 = Resources.GetString
(Resources.StringResources.Appointment2);
string[] apt2Chk = apt2.Split(' ');
if (apt2Chk[0] == hours)
{
_myFace.DrawRectangle(Color.White, 2, 4, 56, 4, 4, 0, 0,
Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawLine(Color.White, 1, 20, 64, 70, 64);
}
_myFace.DrawText(apt2, fonts, Color.White, 14, 52);
string apt3 = Resources.GetString
(Resources.StringResources.Appointment3);
string[] apt3Chk = apt3.Split(' ');
if (apt3Chk[0] == hours)
{
_myFace.DrawRectangle(Color.White, 2, 4, 74, 4, 4, 0, 0,
Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawLine(Color.White, 1, 20, 82, 70, 82);
}
_myFace.DrawText(apt3, fonts, Color.White, 14, 70);
string apt4 = Resources.GetString
(Resources.StringResources.Appointment4);
string[] apt4Chk = apt4.Split(' ');
if (apt4Chk[0] == hours)
{
_myFace.DrawRectangle(Color.White, 2, 4, 92, 4, 4, 0, 0,
Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawLine(Color.White, 1, 20, 102, 70, 102);
}
_myFace.DrawText(apt4, fonts, Color.White, 14, 88);
string apt5 = Resources.GetString
(Resources.StringResources.Appointment5);
string[] apt5Chk = apt5.Split(' ');
if (apt5Chk[0] == hours)
{
_myFace.DrawRectangle(Color.White, 2, 4, 112, 4, 4, 0, 0,
Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawLine(Color.White, 1, 20, 122, 70, 122);
}
_myFace.DrawText(apt5, fonts, Color.White, 14, 108);
_myFace.Flush();
}
showAnimation()
: In this method, I will be showing a simple football game animation to the user.
In this method, I will be drawing simple graphics to display simple animation to draw a player moving from left to right till he reaches the football and when he reaches the ball, he kicks the ball and stands in the same place. The ball will be moving slowly and reach the Goal Post. Once the ball reaches the goal post, I will display the text as Goal. This will be happening as a routine.
public void showAnimation()
{
_myFace.Clear();
Font font = Resources.GetFont(Resources.FontResources.shanuNumber);
_myFace.DrawRectangle(Color.White, 1, 0, 0, Bitmap.MaxWidth,
Bitmap.MaxHeight, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawRectangle(Color.White, 1, goalXVal, 0, goalXVal,
goalYVal, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawEllipse(Color.White, 6, ballXval, ballYval,
2, 2, Color.White, 0, 0, Color.White, 0, 0, 0);
_myFace.DrawEllipse(Color.White, manfaceXval, manfaceYval, 6, 6);
_myFace.DrawLine(Color.White, 1, manfaceXval , manfaceYval +6,
manfaceXval , manfaceYval+30);
_myFace.DrawLine(Color.White, 1, manfaceXval + 1, manfaceYval + 16,
manfaceXval - 4, manfaceYval + 22);
_myFace.DrawLine(Color.White, 1, manfaceXval + 1, manfaceYval + 20,
manfaceXval + 4, manfaceYval + 22);
_myFace.DrawLine
(Color.White, 1, leg1Xval, leg1Yval, leg1X1val, leg1Y1val);
_myFace.DrawLine
(Color.White, 1, leg2Xval, leg2Yval, leg2X1val, leg2Y1val);
if (manfaceXval <= ballXval - 14)
{
if(cicked==false)
{
manfaceXval = manfaceXval + 8;
leg1Xval = leg1Xval + 8;
leg1X1val = leg1X1val + 8;
leg2Xval = leg2Xval + 8;
leg2X1val = leg2X1val + 8;
}
}
if (manfaceXval >= ballXval - 14)
{
cicked = true;
}
if(cicked==true)
{
if(ballYval>= goalYVal)
{
ballXval = ballXval + 8;
ballYval = ballYval - 12;
}
else
{
goals = true;
}
}
if(goals==true)
{
_myFace.DrawText("Goal", font, Color.White, 40, 80);
ival = ival + 1;
if(ival>2)
{
cicked = false;
goals = false;
ballXval = 50;
ballYval = 90;
manfaceXval = 10;
manfaceYval = 40;
leg1Xval = manfaceXval + 1;
leg1Yval = manfaceYval + 30;
leg1X1val = manfaceXval - 4;
leg1Y1val = manfaceYval + 54;
leg2Xval = manfaceXval + 1;
leg2Yval = manfaceYval + 30;
leg2X1val = manfaceXval + 4;
leg2Y1val = manfaceYval + 54;
}
}
_myFace.Flush();
}
spotWatch()
: In this method, I will be showing a simple stopwatch
.
In this method, I will be displaying a simple Stopwatch
with simple text animation. In this stopwatch
, I will be displaying the counter value as Seconds
and Minute
.
public void spotWatch()
{
_myFace.Clear();
Font font = Resources.GetFont(Resources.FontResources.shanuNumber);
Font fontS = Resources.GetFont(Resources.FontResources.shanuName);
_myFace.DrawRectangle(Color.White, 1, 0, 0, Bitmap.MaxWidth,
Bitmap.MaxHeight, 0, 0, Color.White, 0, 0, Color.White, 0, 0, 0);
Font fonts = Resources.GetFont(Resources.FontResources.small);
_myFace.DrawText("StopWatch", fontS, Color.White, 14, 6);
_myFace.DrawLine(Color.White, 1,6, 24, 120, 24);
_myFace.DrawText(Miniutes_str + " : " + secounds_str,
font, Color.White, 12, 38);
_myFace.DrawText(Miniutes_str + " : " + secounds_str,
font, Color.White, 12, 39);
_myFace.DrawText(Miniutes_str + " : " + secounds_str,
font, Color.White, 12, 40);
_myFace.DrawLine(Color.White, 1, 6, 80, 120, 80);
_myFace.DrawText(Resources.GetString(Resources.StringResources.Name1),
fontS, Color.White, name1Xval-30, 92);
if (name1Xval <= Bitmap.MaxWidth)
{
name1Xval = name1Xval + 16;
}
else
{
name1Xval = 6;
}
_myFace.Flush();
if(secounds <= 59)
{
secounds = secounds + 1;
if (secounds<=9)
{
secounds_str = "0" + secounds;
}
else
{
secounds_str = secounds.ToString();
}
}
else
{
secounds = 0;
Miniutes = Miniutes + 1;
}
if (Miniutes <= 9)
{
Miniutes_str = "0" + Miniutes;
}
else
{
Miniutes_str = Miniutes.ToString();
}
}
Points of Interest
Hope you like this and now have a clearer idea to start working with AGENT Smartwatch App development. Have fun! You can find both my All in one App for AGENT Smartwatch source file and another source folder for adding Image in AGENT Smartwatch.
History
- 25th September, 2015: Initial version