Burak
Üye
uygulama içinden ekran görüntüsü almak ! resimli anlatım :)
Android platformunda ekran görüntüsü almak için kolay bir yol yok ama en azından kendi uygulamamızın içerisinden, yine kendi uygulamamızın ekran görüntüsünü alabilme şansımız var.
Ne işimize yarayacak derseniz, uygulamanıza, ekranı arkadaşınla paylaş gibi bir özellik ekleyebilirsiniz, ya da ekran görüntüsünü sosyal ağlara gönderebilirsiniz. Aklıma gelen bir başka alan ise o anki ekran görüntüsünü alıp üzerinde image processing yapmak ve başka amaç için kullanmak, mesela kullanıcı, favorilere ekle dediğinde ekran görüntüsünü alıp küçültüp, eğip bükebilir ve bu thumbnaillerden bir katalog oluşturabilirsiniz
Android 2.1 ile gelen browserdaki bookmarklar şu şekilde yapılıyor. (resim aşagıda)
Bildiğiniz gibi her Android ekranı bir Activityden oluşuyor ve her Activitye bir layout set ediyoruz, her layoutun (aslında viewın) da bir draw methodu bulunuyor. Sistem gerektiği durumlarda bu draw methodunu çağırıyor ve bir Canvas objesine tasarladığımız layoutu çiziyor. Canvas objesi de Bitmap objesi barındırıyor ve çizim bu bitmape yapılıyor.
Bizim ekran görüntüsü almak için çıkış noktamız bu draw methodu olacak, önce kendi Bitmap ve Canvas objemizi yaratacağız ve layoutun draw methoduna bu canvası vereceğiz. Draw methodu bizim Canvasımıza çizimi yapacak, böylece kendi yarattığımız Canvas ve dolayısıyla Bitmapte ekran görüntüsü oluşacak sonra bunu JPEG yapıp sd karta kaydeceğiz
SD kartımızıda Ekran.jpg isimli bir dosya oluşturmuş olduk
Burada dikkat edilecek konu, findViewById ile layoutumuzu alırken bunun daha önce setContentView() methodu ile inflate edilmiş olması. Eğer setContentView() ile kullanmadığımız bir layout ise bu layoutu manuel inflate etmek gerekecek.
Ne işimize yarayacak derseniz, uygulamanıza, ekranı arkadaşınla paylaş gibi bir özellik ekleyebilirsiniz, ya da ekran görüntüsünü sosyal ağlara gönderebilirsiniz. Aklıma gelen bir başka alan ise o anki ekran görüntüsünü alıp üzerinde image processing yapmak ve başka amaç için kullanmak, mesela kullanıcı, favorilere ekle dediğinde ekran görüntüsünü alıp küçültüp, eğip bükebilir ve bu thumbnaillerden bir katalog oluşturabilirsiniz
Android 2.1 ile gelen browserdaki bookmarklar şu şekilde yapılıyor. (resim aşagıda)
Bildiğiniz gibi her Android ekranı bir Activityden oluşuyor ve her Activitye bir layout set ediyoruz, her layoutun (aslında viewın) da bir draw methodu bulunuyor. Sistem gerektiği durumlarda bu draw methodunu çağırıyor ve bir Canvas objesine tasarladığımız layoutu çiziyor. Canvas objesi de Bitmap objesi barındırıyor ve çizim bu bitmape yapılıyor.
Bizim ekran görüntüsü almak için çıkış noktamız bu draw methodu olacak, önce kendi Bitmap ve Canvas objemizi yaratacağız ve layoutun draw methoduna bu canvası vereceğiz. Draw methodu bizim Canvasımıza çizimi yapacak, böylece kendi yarattığımız Canvas ve dolayısıyla Bitmapte ekran görüntüsü oluşacak sonra bunu JPEG yapıp sd karta kaydeceğiz
Kod:
private void captureScreen() {
RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main);
File root = Environment.getExternalStorageDirectory();
File file = new File(root,"Ekran.jpg");
Bitmap b = Bitmap.createBitmap(mainLayout.getWidth(), mainLayout
.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
mainLayout.draw(c);
FileOutputStream fos = ;
try {
fos = new FileOutputStream(file);
if (fos != ) {
b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
SD kartımızıda Ekran.jpg isimli bir dosya oluşturmuş olduk
Burada dikkat edilecek konu, findViewById ile layoutumuzu alırken bunun daha önce setContentView() methodu ile inflate edilmiş olması. Eğer setContentView() ile kullanmadığımız bir layout ise bu layoutu manuel inflate etmek gerekecek.
Ekli dosyalar
Eklentileri görebilmek için Giriş yap veya üye ol.
