Son Forum Aktiviteleri

56
Tümünü Gör

Android | Animasyon "Her" Cihazda Çalışmıyor

Merhabalar. Android Studio üzerinden bir uygulama geliştirmekteyim. Veri alışverişi ile alakalı olduğu için roket-Dünya-uzay üçlüsüyle oyun görünümlü bir dizayn konseptini sağladım. Fakat yaptığım animasyonun her cihazda çalışmadığını fark ettim. 4 farklı emülatörde problemsiz, 4 gerçek cihazdanın da 2 sinde problem çıktı. Animasyon başlamadan bitiyor. Alternatifler oluşturdum fakat yavaş çalışıyor ve hoş gözükmüyor. Olay şöyle; arkaplanda bir scrollview var, (custom). Bu scroll en aşağıda başlıyor ve yukarıya doğru çıkıyor. Bu sırada roket de dünyanın tam üzerinde duruyor. Roketi fırlatmak için

1) Value Animator ile setY yaptırıyorum, olmuyor (çalışmayan cihazlarda, yoksa diğerleri problemsiz).
2) Translate Animation ile direkt hedefe gönderiyorum, olmuyor.
3) Timer ile her milisaniyede setY yaptırıyorum. Oluyor fakat durgun ve kasma belirtileri gösteriyor. 

ValueAnimator un olması tercih çünkü 
setInterpolator(new FastOutSlowInInterpolator()); ile aniden kalkıp yavaşça bitmesini sağlıyorum. Kodlar şunlar;
 

void RoketiFirlat(int tur)
    {
        final float RoketY = Roket.getY();
        final float RoketYSon = DunyaUstu.getBottom() - DunyaUstu.getBottom() / 2;
        Log.d("slide", "Roket Y Son=" + RoketYSon);
        if (tur == 1)
        {
            Animation roketGonder = new TranslateAnimation(0, 0, RoketY, RoketYSon);
            Log.d("slide", RoketY + "\n" + RoketYSon);
            roketGonder.setZAdjustment(Animation.ZORDER_TOP);
            roketGonder.setDuration(5000);
            Roket.startAnimation(roketGonder);
        }
        if (tur == 2)
        {
            Roket.post(new Runnable()
            {
                @Override
                public void run()
                {
                    Log.d("slide", "Roket Y=" + RoketY + "\n Baslik Top=" + RoketYSon);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
                    {
                        ValueAnimator hareketEtRoket = ValueAnimator.ofFloat(RoketY, RoketYSon);
                        hareketEtRoket.setDuration(5000);
                        hareketEtRoket.setInterpolator(new FastOutSlowInInterpolator());
                        hareketEtRoket.addListener(new Animator.AnimatorListener()
                        {
                            @Override
                            public void onAnimationStart(Animator animation)
                            {
                                Arkaplan.setEnableScrolling(false);
                            }

                            @Override
                            public void onAnimationEnd(Animator animation)
                            {
                                Arkaplan.setEnableScrolling(false);
                            }

                            @Override
                            public void onAnimationCancel(Animator animation)
                            {

                            }

                            @Override
                            public void onAnimationRepeat(Animator animation)
                            {

                            }
                        });
                        hareketEtRoket.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
                        {
                            @Override
                            public void onAnimationUpdate(ValueAnimator animation)
                            {
                                float nere = (float) animation.getAnimatedValue();
                                Roket.setY(nere);
                            }
                        });
                        hareketEtRoket.start();
                    }
                    else
                    {
                        Log.d("slide", "Animasyon Otomatik Olarak Bitti");
                        Roket.setY(RoketYSon);
                    }
                }
            });
        }
        if (tur == 3)
        {
            final Timer scrollRoket = new Timer();
            roketSuan = (int) Roket.getY();
            scrollRoket.scheduleAtFixedRate(new TimerTask()
            {
                @Override
                public void run()
                {
                    Roket.setY(roketSuan);
                    roketSuan--;
                    if (Roket.getY() <= RoketYSon)
                    {
                        scrollRoket.cancel();
                    }
                }
            }, 0, 1);
        }
    }

Handlerlar, UI Thread, Z adjustment gibi farklı çözümler denedim fakat bir türlü olmadı. Ayriyeten 11 API üstü bütün cihazlar, yani son else ten dolayı değil zira oraya koyduğum bir Log u görmüyor. Kaldı ki "aniamsyon bitince" kısmını görüp çalıştırıyor. Sadece görüntü yok yani. Aynısı Arkaplan tanımlı ScrollView için de geçerli Onda da Value Animator ve Timer kullanıyorum. Yine sadece Timer çalışıyor. Gözümden kaçırdığım bir şey mi var acaba? Cevaplarınızı bekliyorum, şimdiden teşekkürler

picture-16490-1553546609.jpg
7 yıl 5 ay önce yanıtladın

AccountManager ByType null Veriyor

Merhaba arkadaşlar.Öylesine oluşturduğum test projesinde hesapları almaya çalışıyorum.

        AccountManager hesapYonetici = AccountManager.get(this);
        Account[] butunHesaplar = hesapYonetici.getAccountsByType("com.google"); // şurada Facebook u almak istediğimde   
com.facebook.android,com.facebook.orca,com.facebook.katana yı denememe rağmen sürekli null veriyor.Bunu almak için Facebook SDK daki auth işlemlerine mi girmeliyim.Öyleyse hiç uğraşmıyıcam ama bunun olması gerekirdi.Aynı şey bu haliyle çalışıyor ve gmail i alabiliyor.Çok gerekli de değil ama neden çalışmadığını anlayamadım.Bilen biri varsa doğru yöntemi söyleyebilir mi acaba?

picture-16490-1553546609.jpg
9 yıl 5 ay önce yanıtladın

Volley Kütüphanesi Türkçe Karakter Sorunu

Merhaba arkadaşlar.Uygulamamda volley kütüphanesini kullanarak bi json dan veriler çekiyorum.

Fakat bu çektiğim verilerde "ş","ı" ve "ğ" karakterlerini görüntüleyemiyor.

Volley kütüphanesinde bu sorunu çözebilen var mı acaba,nasıl yapabilirim?

Actionbar Renk "Doğru" Çalışmıyor

Merhaba arkadaşlar.Uygulamamda actionBar rengini değiştirdiğim bir bölüm var ama her seferinde aynı çalışmıyor. Şöyle ki; onCreate'te getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFA0C4FF"))); kodunu yazıyorum.Fakat uygulama açıldığında renk işlemiyor.Android Menü tuşuna dokundupumda sanki focus oraya geçmiş gibi,o zaman çalışıyor.Fakat bu kdou sadece burada kullanıyorum.Yani menü tuşuyla bi ilgisi olmayan bir şey. Ayrıca uygulamayı tamamen kapatıp bi daha açtığımda (her 3 denemede 1-2sinde) kodu görüyor.Yani doğru çalışmıyor.Ayrıca actionBar'da 2 tane menü butonum var.Onlarda elin üstünde kaldığında title ını gösterir ya.Onu yapınca da kod yeni yapılıyor.Acaba sorun nedendir? ActionBar focus parametresini alıyo gibi.Bana öyle geldi daha doğrusu. Uygulama biraz complex,tetikleyen başka şeyler de olabilir ama sizler de böye bir sorun yaşadınızmı,yaşadıysanız nasıl çözdünüz veya 3.şahıs bakış açısı olarak görüşlerinizi almak isterim.Teşekkür ederim...

Admob Gelir Yüksekliği

picture-16490-1553546609.jpg
25 Mart 2019 tarihinde cevaplandı

Uygulamanın hedef aldığı coğrafya ve kullanıcının hangi işletim sisteminden olduğu çok önemli bu konuda. Amerika ve iOS ikilisi her zaman daha fazla kazandırır. Uygulamanda lokalizasyon varsa ve İngilizce kullanılabiliyorsa yabancılar oynadığı için farklılık yaşanmıştır. Bunun haricinde yok diyosan da gösterilen reklamların reklam veren tarafında geliştiriciye vermeyi tercih ettiği ücretin yüksek olduğu reklamlara denk gelmiş olabilir bu da bi olası durum çünkü.

Uygulamam Play Store da yayınlanmıyor ?

picture-16490-1553546609.jpg
25 Mart 2019 tarihinde cevaplandı

Ön kayıt yayımlamak için gereken bir şey değil. Şöyle ki; Önkayıtta kullanıcılara 90 gün içinde lansman yapacağınızı haber veriyorsunuz ve kullanıcı kitlesi oluşturuyorsunuz. Şu anda Call Of Duty Mobile ın yaptığı ve indirlebilir bir oyun henüz olmamasına rağmen PUBG ye rakip olarak gözüküp geleceğini haber vermesi durumu aslında tam olarak. Uygulamanızın yayınlanması için aynı ekrandan Üretim Sürümü kısmını seçip APK nızı oradan yayınlamanız gerekmekte. Ön kayıt ülkelerini kaldırın derim zira sizin istediğiniz böyle bir durum değil gördüğüm kadarıyla. Üretim Sürümü oluşturup normal yayın seçeneğini kullanabilirsiniz.

Admob banner reklam görünmeme sorunu

picture-16490-1553546609.jpg
25 Mart 2019 tarihinde cevaplandı

adb logcat -s Ads olarak loglara baktığınızda büyük ihtimalle failed to load no ad sent vs gibi bi metin göreceksiniz. Uygulamanın tek kullanıcısı siz olduğunuz için (veya 3-5 kişi fark etmiyor) Admob dan gerçek bir reklam isteği gelmiyor ve clienta reklam sunulmuyor. Sebebi bu. Emulatorde test ad geldiyse problem yok demektir bi endişeniz olmasın.

Bildirim cubugu rengi

picture-16490-1553546609.jpg
06 Ekim 2018 tarihinde cevaplandı

Kotlin öyle bu şekilde yapabilirsin, Java kodu benzer zaten tanımlama ve syntaxlarla oynaman yeter;

    fun SetNotifBarColor() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            val window: Window = window
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            window.statusBarColor = ColorUtils.blendARGB(Color.parseColor("#FFFFFF"), Color.BLACK, 0.2f) // #FFFFFF" kısmına karıştırılmasını istediğin rengi girmen yeter. Bu renk 1 üzerinden 0.2 oranla siyaha doğru kayarak bildriim rengini değiştirecektir
        }
    }

Ödüllü video izletme android

69 elemanlı integer türinde array oluşturursun başlangıç değeri 0 olacak şekilde. Bastığın seslerin listede olduğunu varsayarsam; basılanın sırasını geçici değişken olarak tutarsın. Arrayin[geciciDegisken] 0 değilse kontrolüne göre reklam intentini açarsın ; 1 ise sesi çaldırırsın. Reklam sonucunda izlediyse arrayin[geciciDegisken] = 1 dersin.