Ç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.
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.
1
2
3
4
5
6
7
8
| @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ı :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| </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.
1
| <uses-permission android:name= "android.permission.SET_WALLPAPER" /> |
Arkapaln ayarlama butonumuzun click’ine try-catch bloğu içerisinde aşağıdaki kodları ekliyoruz.
1
2
3
4
5
6
| try { getApplicationContext().setWallpaper(bmp); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } |
Bu makalede yazdığımız metodları aşağıdaki resimden de bakabilirsiniz :
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| <RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" 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> |
Çekilen Resmi Arkaplan Olarak Ayarlama (Kamera – 2)
Reviewed by Unknown
on
04:00
Rating:
Hiç yorum yok: