İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
15Android ile IOS Uygulamaları Arasındaki Gelir Farkı
Merhabalar. Geliştirmiş olduğumuz uygulamayı hem Android hem de IOS markete koyduk. İki uygulama da her yönden birebir aynı. İki uygulama da Google Admob banner reklamı var. İndirme, tıklama ve kullanım olarak Android uygulamamızın değerleri IOS'un neredeyse 5 katı daha fazla olmasına rağmen IOS'un reklam gelirleri daha fazla. Örneğin Android uygulamamızın günlük reklam sonuçları şu şekilde;
IOS - Gösterim: 500 Tıklama: 12 Gelir: 3,5TL
Android - Gösterim: 3000 Tıklama: 40 Gelir: 2TL
Bunun açıklaması nedir. Nasıl oluyor da böyle bir durumda IOS daha çok kazandırıyor. Halbuki reklamlar Androidde daha fazla kullanıcıya ulaşıyor ve daha fazla tık alıyor ve haliyle daha fazla kazandırması gerekmiyor mu? Bu konuda bilgisi olan arkadaşlar lütfen paylaşabilirler mi?
Javascript document.getElementsByTagName Problemi
Arkadaşlar kolay gelsin. Şöyle bir sorunum var. Webview içerisinde sayfayı göstermeden önce bir takım değişiklikler yaptırmaya çalışıyorum, örneğin bazı tagların webview içerisinde görünmesini istemiyorum bunun için de aşağıdaki şekilde bir kod yazıyorum. Şimdi eğer ki ben görünmesini istemediğim tagların aşağıdaki gibi header, footer, nav şeklinde yaparsam sorunsuz çalışıyor ama eğer bunlar yerine bir class ya da div yaparsam yani #div_adi, .class_adi gibi div isimleri yazarsam bunlara etki edemiyorum. değişik şekillerde de yazmaya çalıştım örneğin getElementsByTagName(div[class=div_ismi]) şeklinde de yazmaya çalıştım ama bir türlü olmadı. Nasıl yapmalıyım ki istediğim her türlü clasa ve dive etki edebileyim?
document.getElementsByTagName('#id_ismi')[0].style.display='none'; //Olumsuz
document.getElementById('#id_ismi')[0].style.display='none'; //Olumsuz
//Bu şekilde sorunsuz çalışıyor ama sadece header footer nav gibi taglara etki edebiliyorum.
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('header')[0].style.display='none'; " +
"document.getElementsByTagName('footer')[0].style.display='none'; " +
"document.getElementsByTagName('nav')[0].style.display='none'; " +
"})()");
}
Android'de Her Ekran Boyutuna Uygun Tasarım Nasıl Yapılır
Arkadaşlar kolay gelsin. Başlıktan da anlaşılacağı üzere soru gayet açık. Android cihazlarda ekran boyutları büyük, küçük ve orta olmak üzere değişik ebatlarda değişkenlik gösteriyor. Yazdığımız uygulamanın her akranda aynı şekilde gözüküyor oluşunu nasıl sağlayabiliriz. Bu konuda yardımcı olur musunuz?
Play/Pause Butonuna Hızlıca Basıldığında Seç Çalmada Hata
Arkadaşlar merhaba. İlk Android projemi geliştirme aşamasındayım. Lakin bir noktada takıldım, çözemiyorum. Şimdi uygulamayı kısaca anlatayım. Beş tane buton var ve bu butonların her birisine tıklandığında bir tane ses seçiliyor. Bu beş butonun altında da bir tane play/pause butonu var. yukarıdaki butonlardan sesi seçip alttaki play butonuna bastığımda seçmiş olduğum ses çalınıyor. Ama sorun şu ki ben play butonuna hızlı hızlı bastığımda işlem bu hıza yetişemiyor ve ses durması gerekirken durmuyor çalmaya devam ediyor. Tekrar playa basınca da ses çaldığı halde tekrar çalıyor iki defa üç defa aynı anda ses çalıyor. Kodlarım aşağıdaki gibidir. Bu konuda yardımlarınızı bekliyorum, nasıl yapsam bu sorunu aşabilir daha stabil bir hale getirebilirim. Şimdiden teşekkür ederim.
package com.bebekuyutucu;
import android.graphics.Typeface;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AppCompatActivity {
private SoundPool soundPool;
private int soundID;
boolean plays, loaded = false;
float actVolume, maxVolume, volume;
AudioManager audioManager;
int counter;
//String voice = null;
private int selected_voice = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView iv, anne, muzik, supurge, fon, ninni;
final SeekBar seekBar;
final TextView tv = (TextView) findViewById(R.id.textView);
// AudioManager audio settings for adjusting the volume
audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
actVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
volume = actVolume / maxVolume;
//Hardware buttons setting to adjust the media sound
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// the counter will help us recognize the stream id of the sound played now
counter = 0;
rekamYukle ();
Typeface cocoFont = Typeface.createFromAsset(getAssets(), "fonts/Cocogoose_trial.otf");
tv.setTypeface(cocoFont);
seekBar = (SeekBar) findViewById(R.id.seekBar);
iv = (ImageView) findViewById(R.id.imageView3);
ninni = (ImageView) findViewById(R.id.imageView4);
anne = (ImageView) findViewById(R.id.imageView5);
supurge = (ImageView) findViewById(R.id.imageView6);
fon = (ImageView) findViewById(R.id.imageView7);
muzik = (ImageView) findViewById(R.id.imageView8);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tv.setText(progress + " dk");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
anne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
anne.setImageResource(R.mipmap.annex);
fon.setImageResource(R.mipmap.fon);
muzik.setImageResource(R.mipmap.muzik);
supurge.setImageResource(R.mipmap.supurge);
ninni.setImageResource(R.mipmap.ninni);
selected_voice = R.raw.annekarni;
soundID = soundPool.load(getApplicationContext(), selected_voice, counter);
soundPool.stop(soundID);
}
});
muzik.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
anne.setImageResource(R.mipmap.anne);
fon.setImageResource(R.mipmap.fon);
muzik.setImageResource(R.mipmap.muzikx);
supurge.setImageResource(R.mipmap.supurge);
ninni.setImageResource(R.mipmap.ninni);
selected_voice = R.raw.muzik_kutusu;
soundID = soundPool.load(getApplicationContext(), selected_voice, counter);
soundPool.stop(soundID);
}
});
supurge.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
muzik.setImageResource(R.mipmap.muzik);
fon.setImageResource(R.mipmap.fon);
anne.setImageResource(R.mipmap.anne);
supurge.setImageResource(R.mipmap.supurgex);
ninni.setImageResource(R.mipmap.ninni);
selected_voice = R.raw.supurge;
soundID = soundPool.load(getApplicationContext(), selected_voice, counter);
soundPool.stop(soundID);
}
});
fon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
anne.setImageResource(R.mipmap.anne);
fon.setImageResource(R.mipmap.fonx);
muzik.setImageResource(R.mipmap.muzik);
supurge.setImageResource(R.mipmap.supurge);
ninni.setImageResource(R.mipmap.ninni);
selected_voice = R.raw.fon_sesi;
soundID = soundPool.load(getApplicationContext(), selected_voice, counter);
soundPool.stop(soundID);
}
});
ninni.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
muzik.setImageResource(R.mipmap.muzik);
fon.setImageResource(R.mipmap.fon);
anne.setImageResource(R.mipmap.anne);
supurge.setImageResource(R.mipmap.supurge);
ninni.setImageResource(R.mipmap.ninnix);
selected_voice = R.raw.ninnisesi;
soundID = soundPool.load(getApplicationContext(), selected_voice, counter);
soundPool.stop(soundID);
}
});
try {
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC,5);
}catch (Exception hata){
Toast.makeText(MainActivity.this, "Hata: "+hata, Toast.LENGTH_LONG).show();
}
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (tv.getText().toString().equals("0 dk")) {
Toast.makeText(MainActivity.this, "Lütfen sesi seçip, süreyi ayarlayınız.", Toast.LENGTH_SHORT).show();
} else if (selected_voice == 0) {
Toast.makeText(MainActivity.this, "Lütfen sesi seçiniz.", Toast.LENGTH_SHORT).show();
}else {
try {
if (!plays) {
soundPool.play(soundID, volume, volume, 1, seekBar.getProgress() * 12, 1f);
counter = counter++;
plays = true;
iv.setImageResource(R.mipmap.butondurdur);
}else if (plays) {
soundPool.stop(soundID);
plays = false;
iv.setImageResource(R.mipmap.butonbaslat);
}
}catch (Exception hata){
Toast.makeText(MainActivity.this, "Hata :"+hata, Toast.LENGTH_SHORT).show();
}
}
}
});
}
private void rekamYukle() {
AdView adView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.setRequestAgent("android_studio:ad_template").build();
adView.loadAd(adRequest);
}
}
TinyWebDb deki urlyi görsel olarak görüntüleme
Kodlarını paylaşırsan yardımcı olabiliriz.
sözlük oluşturma
Eğer bilgi seviyeniz düşükse buradan şu şekil bu şekil dierek anlatmama imkan yok. Önce temel java dersleri almış olmalısınız ardından dan Android derleri almalısınız.
android stüdio sesli komut uygulaması
Mümkün ama internete bağlanmadan na-mümkün :)
Webview icerisinde video oynatma
Hangi cihazda test ediyorsunuz? Cihazınızın donanım özellikleri düşük olduğundan oluyordur. Bir çok işlemi aynı anda yapmaya çalıştığınızda görüntü işleme, ram kapasitesi, işlemci gücü vs. yetersiz kalıyor.
sözlük oluşturma
Sözlükte bulunan verileri sqlite database e aktararak yapaibilirsiniz.