28 Eylül 2015 Pazartesi

#ANDROID - Fotoğraf Çekmek ve Wallpaper Olarak Atamak

  Hiç yorum yok
Bu makalemizde kullanıcıya fotoğraf çektirip, çekilen bu fotoğrafı uygulama ekranımızda göstermeye ve wallpaper olarak atamaya değineceğiz.

Uygulamamızın tasarımı şekildeki gibi olacak. Küçük android ikonuna batığımızda kamera açılacak, fotoğraf çektikten sonra çekilen fotoğraf büyük android ikonunun bulunduğu yerde görünecek.

"Duvar Kağıdı Yap" butonuna tıklanarak da çektiğimiz bu fotoğrafı wallpaper olarak atayacağız.

Şimdi bunları yapmak için kamera.xml ve ResimCek.java dosyalarımızı oluşturuyoruz.

kamera.xml dosyası:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:src="@drawable/ic_launcher"
android:id="@+id/ivCekilenResim"/>

<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:src="@drawable/ic_launcher"
android:id="@+id/ibResimCek"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="Duvar Kağıdı Yap"
android:id="@+id/bDuvarKagidiYap"/>

</LinearLayout>

ResimCek.java dosyası:

package com.hakancengiz.blogders;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;

import java.io.IOException;
import java.io.InputStream;

public class ResimCek extends Activity implements View.OnClickListener {

ImageView cekilenResim;
ImageButton resimCekenButon;
Button duvarKagidiYapButonu;
Intent i;
final static int kamera=0;
Bitmap bmp;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kamera);
ilkleme();
}

private void ilkleme() {
cekilenResim = (ImageView) findViewById(R.id.ivCekilenResim);
resimCekenButon = (ImageButton) findViewById(R.id.ibResimCek);
duvarKagidiYapButonu = (Button) findViewById(R.id.bDuvarKagidiYap);
resimCekenButon.setOnClickListener(this);
duvarKagidiYapButonu.setOnClickListener(this);

//Ekran yan döndüğünde resim gitmesin diye
InputStream is = getResources().openRawResource(R.drawable.ic_launcher);
bmp = BitmapFactory.decodeStream(is);
}

@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.bDuvarKagidiYap:

try {
getApplicationContext().setWallpaper(bmp);
} catch (IOException e) {
e.printStackTrace();
}

break;

case R.id.ibResimCek:

i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, kamera);

break;
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if(resultCode==RESULT_OK)
{
Bundle bohca = data.getExtras();
bmp = (Bitmap) bohca.get("data");
cekilenResim.setImageBitmap(bmp);
}
}
}

Duvar kağıdı olarak atama işlemi için AndroidManifest.xml dosyamızda wallpaper izni vermemiz gerekiyor.

<uses-permission android:name="android.permission.SET_WALLPAPER" />

Ve ayrıca yine AndroidManifest.xml dosyamızda activity'i tanıtmayı unutmayalım.

Hiç yorum yok :

Yorum Gönder