Windows Phone 7 Titreşim
22.07.2012 22:44:15 | Okunma Sayisi : 12515 | Yorum Sayisi : 1
Windows Phone 7 içerisindeki Vibration Motor' u (titreşim moturu) nasıl aktive edip nasıl durdurabileceğimizi inceleyeceğiz.
Microsoft.Devices namespace' i altındaki VibrateController class' ı içerisinde, titreşim moturunu çalıştıracak ve durduracak birer metot bulunmaktadır. Bunlar;
VibrateController.Default.Start metodu, parametre olarak TimeSpan tipinde bir değer ister. Parametre olarak verilen süre kadar cihazın titremesini sağlar/başlatır.
VibrateController.Default.Start metodu çalıştırıldığı zaman, parametre olarak verilen süre sonuna kadar cihaz titreyecektir. Ancak titreme esnasında VibrateController.Default.Stop metodu çağrılırsa, titreme o anda duracaktır.
VibrateController.Default.Start metoduna verilecek maksimum süre 5 saniyedir.
Geliştireceğiniz basit oyunlarda kısa titreşimler vermek iyi olacaktır.
Örneğimize geçelim;
Visual Studio 2010 ile yeni bir Windows Phone Application açalım.
2 adet Button ve 1 adet TextBox ekledikten sonra Text' lerini aşağıdaki resimde görüldüğü gibi düzenleyelim.
TextBox' ın InputScope özelliğine Number verdik. TextBox tıklandığı zaman ekrana gelecek klavyede sadece numaralar olacak.
ContentPanel ID' li Grid' in XAML kodlarının son hali aşağıdaki gibi olacaktır.
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Name="btnTitret" Content="Titret" Height="72" HorizontalAlignment="Left" Margin="136,226,0,0" VerticalAlignment="Top" Width="160" Click="btnTitret_Click" />
<Button Name="btnDurdur" Content="Durdur" Height="72" HorizontalAlignment="Left" Margin="136,304,0,0" VerticalAlignment="Top" Width="160" Click="btnDurdur_Click" />
<TextBox Name="textBox1" Height="72" HorizontalAlignment="Left" Margin="136,148,0,0" Text="1000" VerticalAlignment="Top" Width="160" InputScope="Number"/></Grid>
using Microsoft.Devices; namespace' ini ekledikten sonra, Titret ve Durdur Button' larının Click' lerini aşağıdaki gibi düzenleyelim.
private void btnTitret_Click(object sender, RoutedEventArgs e)
{
double sure = double.Parse(textBox1.Text);
if (sure > 5000)
sure = 5000;
VibrateController.Default.Start(TimeSpan.FromMilliseconds(sure));
}
private void btnDurdur_Click(object sender, RoutedEventArgs e)
{
VibrateController.Default.Stop();
}
Yukarıda yazdığımız kodları inceleyecek olursak;
btnTitret_Click içerisinde;
- textBox1' in Text' ini double' a Parse ettik ve sure isimli double tipinde değişkene eşitledik.
- sure değişkeninin değeri 5000' den büyük ise, sure değişkenini 5000' e eşitledik. Çünkü VibrateController.Default.Start metodu 0 ile 5000 milisecond (1 saniye = 1000 milisecond) arasında değer almaktadır. Yani cihazı kesintisiz olarak tek seferde en fazla 5 saniye titretebilirsiniz.
- VibrateController.Default.Start metoduna parametre olarak sure değişkenindeki değeri TimeSpan.FromMiliseconds metodu ile verdik.
btnDurdur_Click içerisinde;
- VibrateController.Stop metodu ile cihazın titremesini durdurduk.
Uygulamayı çalıştırıp denemek isterseniz, emulator üzerinde herhangi bir hareket/titreşim göremezsiniz. Eğer Windows Phone 7' li bir cihazınız varsa, bilgisayarınıza bağlayıp Cihaz üzerinde debug edebilirsiniz. Titret Button' u tıklandığında TextBox' a girilen milisecond süresince cihaz titreyecektir. Eğer titreme esnasında Durdur Button' una tıklarsanız, titreme duracaktır.
Örnek uygulamanın kaynak kodlarını buradan indirebilirsiniz.
1 Yorum