Xamarin Android Notlarım, Xamarin ile android uygulaması geliştirdiğinizde bu küçük notların en az birini veya daha fazlasını kullanıyorsunuzdur yada ihtiyacınız olmuştur. Bu küçük notların hepsi için tek tek makale yazmaktansa tek bir makale altında küçük notlar olarak toplamak istedim sizde notlarımı güncel olarak bu makale üzerinden takip edebilirsiniz.
Xamarin Android Notlarım
Marketteki bir uygulamaya yönlendirme
İlk küçük notumuz markette bir uygulamaya yönlendirmenin nasıl yapılacağını göreceğiz bunun için yeni bir activity’e geçiş için kullandığımız StartActivity metodunu ve Intent sınıfını kullanacağız. Hemen ufak bir örnek ile durumu netleştirelim.
C#
1 | StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("market://details?id=com.muratoner.net"))); |
com.muratoner.net
yazan kısma google markette detayına erişmek istediğiniz uygulamanın kimliğini girmelisiniz.
Marketteki tüm uygulamalarını liste halinde gösterme
Markette yayınlanmış birden fazla uygulamanız varsa ve uygulama içerisinde play store’da tüm uygulamalarınızı listelemek isterseniz o zaman üsttekiden farklı olarak search anahtarını kullanacağız Murat ÖNER yazan kısma kendi developer id’nizi yazmalısınız.
C#
1 | StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("market://search?q=pub:Murat ÖNER"))); |
Menü simgesinin rengini değiştirmek isterseniz yapmanız gereken ugyulamanızda stil tanımı var ise stil tanımı içerisine alttaki değişiklikleri uygulamalısınız yoksada oluşturmalısınız ve direk olarak alttaki stili kullanabilirsiniz aktivite’de oluştuduğunuz stili kullanmak için aktivite sınıfı üstündeki Activity attribute’ünün Theme özelliğine oluşturduğunuz stil adını @style/stiladi şeklinde girmelisiniz ve menu adında internetten üstteki görselde gördüğünüz turuncu simgeyi indirip android:src özelliğine bu menu.png dosyamı belirttim.
XML(style.xml)
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8" ?> <resources> <style name="MyTheme" parent="@android:style/Theme.DeviceDefault.Light"> <item name="android:actionOverflowButtonStyle">@style/MyActionBar.OverFlow</item> </style> <style name="MyActionBar.OverFlow" parent="@android:style/Widget.ActionButton.Overflow"> <item name="android:src">@drawable/menu</item> </style> </resources> |
C#(MainActivity.cs)
1 | [Activity(Theme = "@style/MyTheme")] |
TextView nesnesinin kaydırma özelliği açma
TextView nesnesine çok fazla metinsel değer girildiğinde ve ölçüsünü aştığında aşan kısım gözükmeyecektir ve varsayılan olarak kaydırma özelliği kapalı olduğu için bu özelliği etkinleştirmek gerekecek bu özelliği etkinleştirmek için hem .axml uzantılı dosya içerisinde hemde .cs uzantılı dosya içerisinde textview bileşeni için değişiklik yapılması gerekecek. şimdi sırasıyla .axml ve .cs uzantılı dosyalar içerisinde yapacağımız değişikliğe gözatalım.
XML
1 2 3 4 5 | <TextView android:id="@+id/tvWord" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="vertical" /> |
Üstteki kodda scrollbarskaydırma çubuğunun vertical(dikey) olarak gözükeceğini belirttik ama siz horizontal(yatay) olarakda değiştirebilirsiniz ihtiyacınıza göre. Şimdi’de tvWord id’li textview nesnesinde kaydırma çubuğu gözükmesi için .cs uzantılı dosya içerisinde yapılacak değişikliği yazalım.
C#
1 | tvWord.MovementMethod = new Android.Text.Method.ScrollingMovementMethod(); |
Listview Ayracını Kaldırma
Listview nesnesini kullandığınızda her liste elemanları arasında bir çizgi olduğunu farketmişsinizdir eğer tasarım yapacağınız veya yaptığınız bu listview nesnesinde ayracı kaldırmak isterseniz o zaman alttaki iki özelliği ekleyin yada ilgili değerleri örnek koddaki gibi güncelleyin.
XML
1 2 3 4 5 6 | <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@null" android:dividerHeight="0dp" android:id="@+id/lvCategory" /> |
TimePicker 24 Saat Formatında Gösterme
TimePicker seçicisi varsayılan olarak 12 saat formatında gösterilmektedir eğer bunu 24 saat formatında göstermek isterseniz aşağıdaki değişikliği kod tarafında kendi TimePicker nesnenize göre revize ederseniz istediğiniz biçimde 24 saat formatında zaman seçimi oluşacaktır.
C#
1 2 | TimePicker timePicker = FindViewById<TimePicker>(Resource.Id.timePicker); timePicker.SetIs24HourView(true); |
Programlama ile uygulamadan çıkış yapmak
Uygulamadan çıkış yapmak için ana aktivitede iken menü tuşuna basıp kullanıcı kendiliğinden çıkabiliyor fakat programlama yolu ile herhangi bir aktivitede iken çıkış yaptırmak isterseniz o zaman alttaki tek satırlık kodu kullanabilirsiniz.
C#
1 | Java.Lang.JavaSystem.Exit(0) |
TextView nesnesindeki metinsel değerlere gölge efekti uygulama
textView1 adında layout’da tanımlı bir TextView nesnemizin tanımlığı olduğunu varsayıyor ve işlemleri bu id’ye göre yapıyoruz.
C#
1 | textView1.SetShadowLayer(10, 0, 0, Color.White); |
Üstteki kodda 4 farklı parametre geçmişiz ilk değer gölgenin eşit olarak aşağı, yukarı, sağa, sola şeklinde büyüklüğü, 2.parametre gölgenin X ekseninde yani sağa doğru kayma derecesi 3.parametre ise Y ekseninde yani aşağı doğru kayma derecesi olarak belirtebiliyoruz bir her iki parametreyede 0 verdik böylelikle sağa ve aşağı herhangi bir kayma olmadan direk metnin arkasında ortalı olarak durmaktadır gölge. ve son parametre ilede gölgenin rengini belirliyorsunuz.
Başlık çubuğunu programlama ile gizleme
C#
1 | Dialog.Window.RequestFeature(WindowFeatures.NoTitle); |
Görselin ResourceId’sini programlama ile alıp ImageView’e ayarlama
C#
1 2 | var resourceId = (int)typeof(Resource.Drawable).GetField(görseladı).GetValue(null); ; view.FindViewById<ImageView>(Resource.Id.list_image).SetImageResource(resourceId); |
Strings.xml içerisindeki string ifadeleri programsal olarak alma
String.xml içerisinde tanımlı olan metinsel ifadeleri layout’larda kullandığımızda @string/Hello şeklinde kullanabiliyoruz fakat programalama tarafından erişimi haliyle daha farklı olmaktadır şimdi bu farka gözatalım.
1 | Resources.GetString(Resource.String.Hello) |
Widget yatay ve dikey boyutlandırmayı açma
Varsayılan olarak widget yatay ve dikey ölçeklendirmesi kapalı ve bu ölçeklendirmeyi açmak için resizeMode özelliğini kullanacağız. Alttaki örneğimizde göreceğiniz gibi horizontal(yatay) ve vertical(dikey) olarak ölçeklendirme özelliği kazandırılmıştır.
XML
1 2 3 | <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:resizeMode="horizontal|vertical" </appwidget-provider> |
ActionBar geri butonunu gösterme
Uygulama geliştirirken android geri butonunun varsayılan olarak kapalı olduğunu başka bir aktiviteye geçiş yaptığınızda göreceksiniz bu özelliği açmak için alttaki işlemleri gerçekleştirmeniz yeterli olacaktır.
Geri butonunu göstermek istediğiniz aktivite içerisinde alttaki iki kod satırını ekleyiniz.
C#
1 2 | ActionBar.SetHomeButtonEnabled(true); ActionBar.SetDisplayHomeAsUpEnabled(true); |
Üstteki kodları aktivite içerisinde OnCreate metoduna eklemeniz uygun olacaktır. Kodları eklediğiniz aktivitede ActionBar kısmında geri butonu gözükecektir fakat geri butonuna tıkladığında yapacağı işlemi OnMenuItemSelected adlı metod ile yakalayıp yaptırabilirsiniz. Şimdide geri butonuna tıklandığında aktiviteyi sonlandırıp önceki aktiviteye gitmesi için yazılacak kodlara gözatalım.
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public override bool OnMenuItemSelected(int featureId, IMenuItem item) { switch (item.ItemId) { //Geri butonuna tıklandığını bu kod satırından anlıyoruz. case Android.Resource.Id.Home: //Yapılacak işlem ise aktiviteyi sonlandırıp //önceki aktiviteye geçiş yapmak. Finish(); return true; default: return base.OnMenuItemSelected(featureId, item); } } |
Xamarin Android Küçük Notlar