Android Ekran Boyutu Hakkında Eğitim Ücretli

Mtkn58

Kayıtlı Üye
Katılım
14 Kasım 2013
Mesajlar
3.041
Tepkime puanı
0
Puan
0
Yaş
31
Konum
Mersin
Arkadaşlar, android programlamaya başladım biraz. Basit bir program bitirdim, acemilik geçsin diye. Lakin programımı tüm ekran boyutlarına uyumlu hale getirmem gerekiyor. Bunu bir türlü yapamadım. Belli layout tipleri ekleyip, belli çözünürlükleri hallettim ama çok uzun ve her telefona, tablete, televizyona uyumlu olmuyor.

Ayrıca, mesela iki tane 4.7 inch telefon var ikisi de 1920x1080 diyelim. Bunlarda bile UI bozuluyor. Butonlar text'ler yer değiştiriyor.

İsteğim şu :

Bilgisayarıma teamviewer ile bağlanıp programım üzerinden bana bu uyumluluklar hakkında tam bilgi verebilecek birisini arıyorum. Tahminim 1 saatten kısa sürer. Ve bunu uzun uzun değil, kısa ve basit bir yolla yapacak birisini arıyorum. Bu konuda gerçekten bilgili birisi. Çünkü kimileri tek xml dosyasında neredeyse hallediyormuş diye okudum.

20 Tl düşünüyorum bu konu eğitimi için. Çok araştırdım ama istediklerimi bir türlü elde edemedim. Tüm cihazlara uyumlu hale getirmeyi bu programın değerinden değil, ileride yapacağım programlar için istiyorum. Bu programın kaynak kodunu bile alsın isteyen, bomboş bir şey hali hazırda.

Varsa senin programını kolay ve pratik bir şekilde tüm cihazlara uyumlu yaparız diyen. Bana ulaşsın, konu altından yazsın. Umarım fiyat tatmin edicidir. Youtube işi bitince, harcamaları kontrol ediyoruz artık :)

Not: Bir admin görürse başlıkta ki "eğitim" yazısını "yardım" olarak değiştirebilir.
 
sadece bilgilendirmek amacıyla yazıyorum ücretli / ücretsiz destek verecek zamanım yok

ihtiyacın olan şey Responsive Design, bunu 2 yöntem ile yapabilirsin,

1 - XAML
2- Programlama

- XAML : Layouts klasörüne destekleyeceğin tüm ekran çözünürlükleri için tek tek tasarımını kodlaman gerekir, 10 farklı çözünürlük için bir layout'u 10 kez klonlayıp form elemanlarını ekran çözünürlüğünü baz alarak değiştirmelisin.

- Programlama : Oluşturduğun herhangi bir layout'u bağladığın Java Class'ı (Activity) içerisinde cihazın Width ve Height bilgilerini alarak oluşturacağın nesneleri ekran çözünürlüğüne oranlayarak programsal olarak yerleştirirsin.

NOT: 2 Yöntemde de tavsiyem RelativeLayout'u Main Layout olarak tahin etmen. Konumlamaları bu sayede Responsive Kolayca Yaparsın.

Dipnot : Ben programlama yöntemi ile yapıyorum nesnelerimi ekran çözünürlüğüne oranla boyutlandırıp RelativeLayout üzerinden birbirine bağlayarak konumlandırıyorum
 
sadece bilgilendirmek amacıyla yazıyorum ücretli / ücretsiz destek verecek zamanım yok

ihtiyacın olan şey Responsive Design, bunu 2 yöntem ile yapabilirsin,

1 - XAML
2- Programlama

- XAML : Layouts klasörüne destekleyeceğin tüm ekran çözünürlükleri için tek tek tasarımını kodlaman gerekir, 10 farklı çözünürlük için bir layout'u 10 kez klonlayıp form elemanlarını ekran çözünürlüğünü baz alarak değiştirmelisin.

- Programlama : Oluşturduğun herhangi bir layout'u bağladığın Java Class'ı (Activity) içerisinde cihazın Width ve Height bilgilerini alarak oluşturacağın nesneleri ekran çözünürlüğüne oranlayarak programsal olarak yerleştirirsin.

NOT: 2 Yöntemde de tavsiyem RelativeLayout'u Main Layout olarak tahin etmen. Konumlamaları bu sayede Responsive Kolayca Yaparsın.

Dipnot : Ben programlama yöntemi ile yapıyorum nesnelerimi ekran çözünürlüğüne oranla boyutlandırıp RelativeLayout üzerinden birbirine bağlayarak konumlandırıyorum

1. yöntemde ki sorun, birbirine yakın olan çözünürlüklere erişemiyorum. 768x1200 var ve 720x1200 var diyelim mesela. layout-sw320 yaptığımda ikisine de etki ediyor. Tabii ikisinde de farklı sonuç çıkıyor. Zaten sorunum da bu. Tek tek kodlama yetersiz kalıyor bir yerde.
İkinci yöntemi ise, işte anlatacak birisine ihtiyacım var artık. Yada bir ara baya bir uğraşıp uğraşıp yapmak. Araştırmaktan okumaktan gerçekten yoruldum.

Sanırım benim sorunumu dimens.xml diye bir şey var o çözecek ama onu da iyice bir kavramam gerekiyor.
Not: Constraint layout kullanıyorum.
 
Son düzenleme:
1. yöntemde ki sorun, birbirine yakın olan çözünürlüklere erişemiyorum. 768x1200 var ve 720x1200 var diyelim mesela. layout-sw320 yaptığımda ikisine de etki ediyor. Tabii ikisinde de farklı sonuç çıkıyor. Zaten sorunum da bu. Tek tek kodlama yetersiz kalıyor bir yerde.
İkinci yöntemi ise, işte anlatacak birisine ihtiyacım var artık. Yada bir ara baya bir uğraşıp uğraşıp yapmak. Araştırmaktan okumaktan gerçekten yoruldum.

Sanırım benim sorunumu dimens.xml diye bir şey var o çözecek ama onu da iyice bir kavramam gerekiyor.
Not: Constraint layout kullanıyorum.

dimens.xml çözünürlüklerin tanımlandığı dosya orasıyla bişey çözemezsin tanımlama yapıp çağırırsınız sadece

768x1200 ve 720x1200 bunları yazılımsal olarak kontrol edip layout'u ona göre set ediceksiniz layout-sw320 ile çözemezsiniz.

Son yazdığım kelime bulmaca oyunundan bir fonksiyon paylaşayım sizin için bu fonksiyon, soru da ki harf sayısına ve ekran çözünürlüğüne göre harflerin boyutlarını ayarlıyor

PHP:
private View KARAKTER_EKLE(String HARF,Boolean TextVisiblity)
    {
        TextView YENI_KARAKTER = new TextView(getContext());

        int HARF_W = 80, HARF_H = 80;

        YENI_KARAKTER.setTextSize(18);

        int LEN = CEVAP.length() + 5;
        double PERC = 7;

        Boolean TABLET = Actions.isTablet(getContext());

        if(TABLET)
        {
            int RESIM_BUYUKLUGU = (CIHAZ_W * 15) /100;
            SORU.setLayoutParams(new LinearLayout.LayoutParams(RESIM_BUYUKLUGU,RESIM_BUYUKLUGU));
            FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
            lp.setMargins(0, 35, 0, 0);
            LETTERS.setLayoutParams(lp);

        }

        if(LEN == 10 || LEN == 11)
        {
            PERC = 6;

            if(TABLET) YENI_KARAKTER.setTextSize(20);
        }
        else if(LEN == 12 || LEN == 13)
        {
            PERC = 5.5;

            if(TABLET) YENI_KARAKTER.setTextSize(18);
        }
        else if(LEN == 14)
        {
            PERC = 5;

            if(TABLET) YENI_KARAKTER.setTextSize(16);
        }
        else if(LEN >= 15)
        {
            PERC = 4.2;

            if(TABLET) YENI_KARAKTER.setTextSize(14);
        }

        try
        {
            HARF_W = (int)(Double.parseDouble(String.valueOf(CIHAZ_W)) * PERC) / 100;
        }
        catch (Exception Ex)
        {

        }

        HARF_H = HARF_W;


        FlowLayout.LayoutParams params = new FlowLayout.LayoutParams(HARF_W,HARF_H);

        YENI_KARAKTER.setLayoutParams(params);

        YENI_KARAKTER.setGravity(Gravity.CENTER);

        YENI_KARAKTER.setTag(HARF);

        YENI_KARAKTER.setBackground(getResources().getDrawable(R.drawable.bos_kutu));

        if(TextVisiblity)
        {
            YENI_KARAKTER.setText(HARF);

            YENI_KARAKTER.setOnTouchListener(this);
        }
        else
        {
            YENI_KARAKTER.setOnDragListener(this);
        }

        return  YENI_KARAKTER;
    }

Not : Oyun Linki :D : https://play.google.com/store/apps/details?id=whatisthis.gamepii.com.whatisthis
 
[MENTION=37175]KOLCAK[/MENTION] en azından sizin söylediğiniz yöntemi anlatan bir yazı ve video paylaşabilirseniz, çok yardımcı olursunuz.
 
[MENTION=37175]KOLCAK[/MENTION] en azından sizin söylediğiniz yöntemi anlatan bir yazı ve video paylaşabilirseniz, çok yardımcı olursunuz.

hocam bunlar benim yöntemlerim :D başkaları nasıl yapıyor bilmiyorum, başka yol olacağını da sanmıyorum, basit aslında biraz pratik yapsanız çözersiniz bunu
 
Kişiselleştirme

Tema editörü

Ayarlar Renkler

  • Mobil kullanıcılar bu fonksiyonları kullanamaz.

    Alternatif header

    Farklı bir görünüm için alternatif header yapısını kolayca seçebilirsiniz.

    Görünüm Modu Seçimi

    Tam ekran ve dar ekran modları arasında geçiş yapın.

    Izgara Görünümü

    Izgara modu ile içerikleri kolayca inceleyin ve düzenli bir görünüm elde edin.

    Resimli Izgara Modu

    Arka plan görselleriyle içeriğinizi düzenli ve görsel olarak zengin bir şekilde görüntüleyin.

    Yan Paneli Kapat

    Yan paneli gizleyerek daha geniş bir çalışma alanı oluşturun.

    Sabit Yan Panel

    Yan paneli sabitleyerek sürekli erişim sağlayın ve içeriğinizi kolayca yönetin.

    Box görünüm

    Temanızın yanlarına box tarzı bir çerçeve ekleyebilir veya mevcut çerçeveyi kaldırabilirsiniz. 1300px üstü çözünürler için geçerlidir.

    Köşe Yuvarlama Kontrolü

    Köşe yuvarlama efektini açıp kapatarak görünümü dilediğiniz gibi özelleştirin.

  • Renginizi seçin

    Tarzınızı yansıtan rengi belirleyin ve estetik uyumu sağlayın.

Geri