public class ProfileActivity extends Activity {
final static int SELECT_IMAGE=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image);
ImageView profileimage = (ImageView) findViewById(R.id.proflie_image);
profileimage.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(
Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
/*
Uri uri=android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Intent intent = new Intent(Intent.ACTION_PICK, uri);*/
startActivityForResult(intent, SELECT_IMAGE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == SELECT_IMAGE && resultCode == RESULT_OK && null != data ){
Uri image=data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(image, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
/*
Bitmap bitmap = null;
if (resultCode == RESULT_OK && requestCode == SELECT_IMAGE){
Uri image=intent.getData();
try{
bitmap=Images.Media.getBitmap(getContentResolver(), image);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
*/
ImageView profileimage = (ImageView) findViewById(R.id.proflie_image);
profileimage.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
}
11-12 00:23:16.565: E/AndroidRuntime(17609): FATAL EXCEPTION: main
11-12 00:23:16.565: E/AndroidRuntime(17609): Process: com.example.profile, PID: 17609
11-12 00:23:16.565: E/AndroidRuntime(17609): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/images/media/233551 }} to activity {com.example.profile/com.example.profile.ProfileActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/233551 from pid=17609, uid=10147 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread.deliverResults(ActivityThread.java:3384)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3427)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread.access$1300(ActivityThread.java:139)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.os.Handler.dispatchMessage(Handler.java:102)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.os.Looper.loop(Looper.java:136)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-12 00:23:16.565: E/AndroidRuntime(17609): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 00:23:16.565: E/AndroidRuntime(17609): at java.lang.reflect.Method.invoke(Method.java:515)
11-12 00:23:16.565: E/AndroidRuntime(17609): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
11-12 00:23:16.565: E/AndroidRuntime(17609): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
11-12 00:23:16.565: E/AndroidRuntime(17609): at dalvik.system.NativeStart.main(Native Method)
11-12 00:23:16.565: E/AndroidRuntime(17609): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/233551 from pid=17609, uid=10147 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.os.Parcel.readException(Parcel.java:1465)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.content.ContentProviderProxy.query(ContentProviderNative.java:413)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.content.ContentResolver.query(ContentResolver.java:464)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.content.ContentResolver.query(ContentResolver.java:407)
11-12 00:23:16.565: E/AndroidRuntime(17609): at com.example.profile.ProfileActivity.onActivityResult(ProfileActivity.java:46)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.Activity.dispatchActivityResult(Activity.java:5467)
11-12 00:23:16.565: E/AndroidRuntime(17609): at android.app.ActivityThread.deliverResults(ActivityThread.java:3380)
11-12 00:23:16.565: E/AndroidRuntime(17609): ... 11 more
카톡프로필을 보면 바로 이미지를 선택하여
거기서 사진 선택 후 바로 그 이미지에 선택한 사진이 불러와지는데
위의 방법대로 하려니 자꾸 오류가 나네요ㅠㅠㅠ도와주세요
어플을 실행하면 imageview의 그림을 클릭하면
폰에 내장된 사진을 볼 수 있는데 그 사진을 선택하면 바로 어플리케이션이 종료가 되요..