Çekilen Resmi Arkaplan Olarak Ayarlama (Kamera – 2)

Android programlama makalelerimizde bir önceki uygulamada kamera kullanmayı göstermiştim. Şimdi ise kamerayla resim çektikten sonra nasıl arkaplan olarak ayarlanacağından bahsedeceğim. isterseniz önceki uygulamadaki kodları hatırlayalım.

kamera2

startActivityForResult metodu için ekrana sağ tıklayıp -> Source -> Override/Implements Methods içerisinden onActivityResult metodunu uygulamamıza eklememiz gerekiyor. Bu işlemi yaptıktan sonra şu kodların uygulaması eklenmiş olması gerekir.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}
}

BU metodun içerisine if metodu içerisinde resultkodumuzun doğru döndüğü takdirde yapılacak işlemleri yazmamız gerekiyor.Resmi kullanabilmemiz için ise Bitmap sınıfından yararlanmamız gerekiyor. Yani onActivityResult metodunun son hali aşağıdaki gibi olmalı :

</pre>
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RESULT_OK){
Bundle resim = data.getExtras();
Bitmap bmp = (Bitmap) resim.get("data");
iv.setImageBitmap(bmp);
}
}
<pre>

Result metodu içerisinde bir de bundle oluşturuyoruz. Çünkü android programlamada veri aktarımlar için Bundle lar kullanılır.  Bütün bu işlemlerden sonra artık arkaplan butonumuzun tıklandığında hangi işlemleri yapacağını yazabiliriz. Butona click yazmadan önce resim için izin almamız gerekiyor. Bunun için aşağıdaki kodu manifest dosyamızın içerisine application tag’inin üzerine aşağıdaki kodu yapıştırıyoruz.

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

Arkapaln ayarlama butonumuzun click’ine try-catch bloğu içerisinde aşağıdaki kodları ekliyoruz.

try{
getApplicationContext().setWallpaper(bmp);
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}

Bu makalede yazdığımız metodları aşağıdaki resimden de bakabilirsiniz :

kamera4

Bütün kodlarımız bu kadar. Yalnız program emülatörde çalışmayacağından dolayı sadece telefonunuzdan deneyebilirsiniz. Uygulamanın bütün kodlarını aşağıya ekliyorum. Bir sorununuz olduğunda yorum kısmında sorabilirsiniz, elimden geldiğince yardımcı olmaya çalışıyorum.


MainActivity.java

package com.example.kamera;
import java.io.IOException;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener{
Button resimCek , Duvarkagidi;
ImageView iv;
final static int kamera = 0;
Bundle resim;
Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resimCek = (Button)findViewById(R.id.bresimCek);
resimCek.setOnClickListener(this);
iv= (ImageView)findViewById(R.id.imageView1);
}
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bDuvarkagidi:
try{
getApplicationContext().setWallpaper(bmp);
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
break;
case R.id.bresimCek:
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, kamera);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RESULT_OK){
resim = data.getExtras();
bmp = (Bitmap) resim.get("data");
iv.setImageBitmap(bmp);
}
}
}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/bresimCek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="ResimCek" />
<Button
android:id="@+id/bDuvarkagidi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/bresimCek"
android:layout_below="@+id/bresimCek"
android:text="DuvarKagidiAyarla" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/bDuvarkagidi"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/bDuvarkagidi"
android:layout_below="@+id/bDuvarkagidi"
android:src="@drawable/ic_launcher" />
</RelativeLayout>