Android | base64 encoded resim verisini imageView'da görüntüleme

Written by Super User. Posted in Android Yardımcı Kodlar

Önceki Link'teki yazımda bir image dosyasını PHP'de base64 olarak nasıl encode edebileceğimizden bahsetmiştim. Şimdi bu encode edilmiş resim verimizi Android client'ımızda decode edip, bir ImageView'da nasıl gösterebileceğimizi küçük bir kod parçası yardımıyla göstereceğim.

PHP ile istediğim verileri JSON olarak bana sunan servisimi oluşturup, bu verileri Android client'la alıp kullanabileceğim hâle getirdim. Tüm bu aşamaları da baştan sona müsait bir vaktimde yazmayı düşünüyorum. Alttaki kodlarda ytData.get(6) servisimizden gelen, bizim resmimizin encode edilmiş verisini tutuyor.

//Encoded verimizi alıp String bir değişkene atıyoruz.
String encodedImage = ytData.get(6);
//encodedImage stringimizden decodedString değişkenimizi elde ediyoruz.
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
//decodedString değişkenimizi kullanarak Bitmap'imizi oluşturuyoruz.
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
//ImageView kaynağımızı erişip iv değişkenimize bağlıyoruz.
ImageView iv = (ImageView) this.findViewById(R.id.imageView1);
//Bitmap'imizi drawable haline getirip, imageview'ımıza arkaplan olarak veriyoruz.
Drawable d =new BitmapDrawable(decodedByte);
iv.setBackgroundDrawable(d);

Alttaki şekildeki gibi resmimizi artık görüntüleyebiliyoruz.

Android | Loglama

Written by Super User. Posted in Android Yardımcı Kodlar

Android kullanışlı bir Log sınıfını desteklemektedir. Bu log sınıfı genellikle kullanılan 5 method barındırır. Bunları inceleyecek olursak

  • Log.e() : Hataları loglar
  • Log.w() : Uyarıları loglar
  • Log.i() : Bilgilendirici mesajları loglar
  • Log.d() : Debug mesajlarını loglar
  • Log.v() : Ayrıntı mesajlarını loglar

Örnek kodumuzla inceleyelim:

Android | Browser'da site görüntüleme

Written by Super User. Posted in Android Yardımcı Kodlar

Yazdığımız bir android uygulamasında bazı durumlarda kullanıcıların tarayıcıya erişip, internette gezebilmelerini isteyebiliriz. Bu işlemi gerçekleştirebilmek için kısacık bir kod parçası işimizi görecektir.

package com.browser;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class OrientationDetect extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Linkimizi belirliyoruz
Uri link = Uri.parse("http://www.getitandroid.com");
//Intentimizi oluşturuyoruz
Intent openBrowser = new Intent(Intent.ACTION_VIEW,link);
//Başlatıyoruz
startActivity(openBrowser);


}
}

Android | Cihazın ekran yönünü belirleme

Written by Super User. Posted in Android Yardımcı Kodlar

Bazı durumlarda Android barındıran cihazımızın ekran yönünü belirlememiz gerekebilir. En basitinden, bir oyun olduğunu düşünün, oyunda ekranın yatık olduğu yöne göre karakterimiz o yöne doğru hareket etmeye başlasın. İşte bu gibi durumlarda ekran yönünü nasıl belirleyebileceğimizi kod üzerinden göstereceğim.

Kullanacağımız method getRotation methodu. Bu methodumuz 2.2 sürümü için geçerli. Daha eski sürümlerde getOrientation methodunu kullanmalıyız. Bu method'un işlevine gelince, documentation'dan bakalım.

getRotation methodu;

Returns the rotation of the screen from its "natural" orientation. The returned value may be Surface.ROTATION_0 (no rotation), Surface.ROTATION_90, Surface.ROTATION_180, or Surface.ROTATION_270. For example, if a device has a naturally tall screen, and the user has turned it on its side to go into a landscape orientation, the value returned here may be either Surface.ROTATION_90 or Surface.ROTATION_270 depending on the direction it was turned. The angle is the rotation of the drawn graphics on the screen, which is the opposite direction of the physical rotation of the device. For example, if the device is rotated 90 degrees counter-clockwise, to compensate rendering will be rotated by 90 degrees clockwise and thus the returned value here will be Surface.ROTATION_90.

Kod parçamıza gelelim;

Android | Intentler arası Bundle ile veri aktarma

Written by Super User. Posted in Android Yardımcı Kodlar

Bazen bir activity'den başka bir tanesine veri aktarmaya ihtiyacımız olabilir. Bu nedenle Bundle nesnelerine verimizi ekleyip, diğer aktiviteyi başlatıp, başlatılan bu aktivitede gönderilen verileri yakalayabiliriz. Bu durumu bir örnek üzerinden inceleyelim;

Veri gönderecek kod parçamız:

//Gönderilecek verimizi tanımlıyoruz.
int id = 5;

//İntentimizi tanımlıyoruz
Intent i= new Intent(ContextArgumanınız, IntentleAcacagınızSınıf.class);

//Verimizi yerleştirmek için Bundle'ımızı oluşturuyoruz.
Bundle bundle = new Bundle();

//Bundle'ımıza int değerimizi yerleştiriyoruz. İlk argumanımız anahtar, ikinci argumanımız değer.
bundle.putInt("id", id);

//intentimize bundle'ımızı ekledik.
i.putExtras(bundle);

//intentimizi çalıştırdık.
startActivity(i)

Veri alacak kod parçamız:

//Verimizi alacağımız sınıfta gönderilen Bundle'ın extralarına erişiyoruz.
Bundle extras = getIntent().getExtras();

//Veri gönderecek kod parçamızda tanımladığımız key değerine göre, extras'daki int veriyi çekiyoruz.
int no = extras.getInt("id");

Böylelikle bir sınıfımızdan gönderilen veriyi, öteki sınıfımızdan almış olduk.