Android의 기본 어플로 장착되어있는 Gallery 어플로 Intent넘긴후 리스트 다시 받아오기
- Android Provider 믿을것이 못되더라.
package june.my.testdroid;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
public class TestdroidActivity extends Activity {
private static final int SELECT_PICTURE = 1;
private String selectedImagePath;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
openPhotoLibrary();
}
private void openPhotoLibrary() {
//Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Intent i = new Intent();
i.setType("image/*");
//i.setType(MediaStore.Images.Media.CONTENT_TYPE);
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(i, "Select Picture"), SELECT_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
}
Android의 Wallpaper 바꾸는 API찾아보기
- Wallpaper바꾸는데 Permission 필요하더라 (Androidmenifest.xml파일 수정 요함)
- WallpaperManager 클래스를 통해 할수 있더라
- BitmapFactory를 통해 이미지 바꿀수 있더라
package june.mywallpaper.com;
import java.io.IOException;
import android.app.Activity;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MywallpaperActivity extends Activity {
private static final Button Button = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView img1 = (ImageView)findViewById(R.id.imageView1);
img1.setImageResource(R.raw.wall1);
img1.setVisibility(View.VISIBLE);
Button btn1 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Bitmap b = BitmapFactory.decodeStream(getResources().openRawResource(R.raw.wall1));
WallpaperManager manager = WallpaperManager.getInstance(MywallpaperActivity.this);
final Display d = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
try{
manager.setBitmap(Bitmap.createScaledBitmap(b, d.getWidth()*4, d.getHeight(), true));
Toast.makeText(getApplicationContext(), "배경화면 지정 성공", 1).show();
}catch(IOException e){
e.printStackTrace();
Toast.makeText(getApplicationContext(), "배경화면 지정 실패", 1).show();
}
}
});
}
}
2012/활동지도