Neste artigo vou mostrar como usar o controle AnalogClock para exibir um relógio analógico no Xamarin Android usando o Visual Studio 2015 e a linguagem C#. |
A widget AnalogClock exibe um relógio clássico ou analógico, contendo hora, minuto e segundos, com um círculo de marcas de escala que mostram minutos e horas.
Se você preferir pode usar a widget DigitalClock para exibir um relógio digital com as mesmas propriedades.
Vamos usar a propriedade Visibility para tornar o widget invisível/visível conforme a nossa necessidade.
Recursos usados:
Visual Studio Community 2015 ou Xamarin Studio
Emulador Android virtual ou físico (veja como emular usando o Vysor)
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando o projeto no VS Community 2015 - Relógio Analógico
Abra o VS 2015 Community e clique em New Project;
Selecione a linguagem Visual C# e o template Android -> Blank App(Android)
Informe o nome App_Relogios e clique no botão OK;
Abra o arquivo Main.axml na pasta Resources/layout e no modo Designer.
Primeiro remova o controle Button que vem definido por padrão e a seguir inclua o seguinte controle a partir da ToolBox:
Abaixo vemos o leiaute no emulador do Xamarin e ao lado o respectivo código XML gerado :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Relogio Analogico"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<Button
android:text="Exibir Relogio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnExibir" />
<AnalogClock
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/analogClock1" />
</LinearLayout>
|
Definimos apenas um controle TextView, um controle Button e o controle AnalogClock usando XML.
A seguir abra o arquivo MainActivity.cs e altere o código desse arquivo conforme abaixo:
using Android.App;
using Android.OS;
using Android.Widget;
namespace AppRelogiosAnalogicoDigital
{
[Activity(Label = "AppRelogiosAnalogicoDigital", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var relogioAnalogico = FindViewById<AnalogClock>(Resource.Id.analogClock1);
relogioAnalogico.Visibility = Android.Views.ViewStates.Invisible;
var btnAnalogico = FindViewById<Button>(Resource.Id.btnExibir);
btnAnalogico.Click += (sender, e) =>
{
btnAnalogico.Text = "Relógio Analógico";
relogioAnalogico.Visibility = Android.Views.ViewStates.Visible;
};
}
}
}
|
Neste código criamos uma instância da classe AnalogClock e definimos sua propriedade Visibility para Invisible de forma a ocultar o widget.
A seguir criamos uma instância do controle Button e definimos o evento Click onde alteramos o texto do Button e exibimos o relógio.
Executando o projeto usando o emulador do Visual Studio iremos obter o seguinte resultado:
Muito simples.
Criando o Relógio Digital
Para criar o relógio digital vamos incluir no arquivo Main.axml usado no projeto o widget DigitalClock.
Vamos incluir no arquivo os seguintes widget a partir da ToolBox:
Abaixo vemos o leiaute no emulador do Xamarin e ao lado o respectivo código XML gerado: (destaquei em azul o código que foi incluído)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
.....
<Button
android:text="Exibir Relogio Digital"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnDigital"
android:textSize="20" />
<DigitalClock
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/digitalClock1"
android:textSize="40"
android:gravity="center" />
</LinearLayout>
|
A seguir abra o arquivo MainActivity.cs e altere o código desse arquivo conforme o código em azul abaixo:
using Android.App;
using Android.OS;
using Android.Widget;
namespace AppRelogiosAnalogicoDigital
{
[Activity(Label = "AppRelogiosAnalogicoDigital", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var relogioAnalogico = FindViewById<AnalogClock>(Resource.Id.analogClock1);
relogioAnalogico.Visibility = Android.Views.ViewStates.Invisible;
var btnAnalogico = FindViewById<Button>(Resource.Id.btnExibir);
btnAnalogico.Click += (sender, e) =>
{
btnAnalogico.Text = "Relógio Analógico";
relogioAnalogico.Visibility = Android.Views.ViewStates.Visible;
};
var relogioDigital = FindViewById<DigitalClock>(Resource.Id.digitalClock1);
var btnDigital = FindViewById<Button>(Resource.Id.btnDigital);
relogioDigital.Visibility = Android.Views.ViewStates.Invisible;
btnDigital.Click += (sender, e) =>
{
btnAnalogico.Text = "Relógio Digital";
relogioDigital.Visibility = Android.Views.ViewStates.Visible;
};
}
}
}
|
Executando o projeto usando o emulador do Visual Studio iremos obter o seguinte resultado:
Pegue o projeto aqui : AppRelogiosAnalogicoDigital.zip (sem as referências)
"Porque pela graça sois salvos, por meio
da fé; e isto não vem de vós, é dom de Deus.
Não vem das obras, para que ninguém se glorie;"
Efésios 2:8,9
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
https://developer.xamarin.com/api/type/Android.App.AlertDialog/