2012-10-20 2 views
1

그림을 캡처하고 프로필 그림으로 지정할 의도가있는 카메라를 호출하는 활동이 있습니다. 액티비티는 잘 동작하지만, 다시 클릭하여 액티비티를 다시 열면 그림이 더 이상 표시되지 않습니다.활동이 다시 열릴 때 캡처 한 그림 표시

사용자가이 활동을 시작할 때마다 어떻게 표시합니까? 여기에 내가 profilePicture.setImageBitmap(bm)onResume()하지만 내 응용 프로그램 충돌 전화를 시도

public class MyAccountActivity extends Activity { 

private static final int CAMERA_REQUEST = 1888; 
private TextView name; 
private TextView userId; 
private TextView address; 
private TextView email; 
private TextView phone; 
private ImageButton profilePicture; 
private Bitmap bm; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my_account); 
    setUpViews(); 
Log.v("test","this is test: "+LoginActivity.user.getName()); 
} 

private void setUpViews() { 
    //setting up views 

    //calling user details from User [] instance 

} 

public void ViewPicture(View v) { 
    Intent intent = new Intent(
    android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, 
      MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath()); 
      startActivityForResult(intent, CAMERA_REQUEST); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
     super.onActivityResult(requestCode, resultCode, data); 
       bm = (Bitmap) data.getExtras().get("data"); 
       profilePicture.setImageBitmap(bm); 
       MediaStore.Images.Media.insertImage(getContentResolver(), bm, null, null); 
       ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
       bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object 
       byte[] b = baos.toByteArray(); 
} 

그 활동에 대한 내 코드입니다. 도움을 주시면 감사하겠습니다. 이미지를 표시 할 때마다

+1

는 onResume에서 setupViews를 호출하려고 사용합니다. 액티비티를 만들 때 모든 것을 설정했지만, 액티비티가 다시 돌아 오면 다시 생성되지 않으므로 이미지가 적용되고 있다고 생각하지 않습니다. 이미지를 설정하려고 할 때 어떤 충돌이 발생합니까? – toadzky

+0

빠른 답장을 보내 주셔서 감사합니다 ... 귀하의 제안을 즉시 테스트하고 아플 응답을 게시하십시오. 감사합니다 –

+0

@toadzky 그것은 아무것도 변경하지 못했습니다. 나는 결과에서 의도를 얻을 때 profilePicture를 설정했기 때문에 생각합니다. 휴대 전화에서 저장된 위치에서 사진을로드 할 수 있다면 어떨까요? 그게 가능하니? 다시 한 번 감사드립니다 –

답변

0

저장 어떤 URI 경로

Uri uri = Uri.withAppendedPath(Uri.fromFile(context.getExternalFilesDir(null)), imageName.png); 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri)); 

와 캡처 된 이미지는,이 URI

profilePicture.setImageUri(uri) 
+0

위의 코드는 카메라를 의도적으로 호출 할 때 진행됩니까? 그래서 기본적으로 내 ViewPicture()? –

+0

이 제안은 올바른 해결책 인 것으로 보이지만 불행히도 제대로 구현할 수는 없습니다. 감사합니다. –

+0

[링크] (http://stackoverflow.com/questions/5661424/how-to-capture-the-image-and-save-it-in-sdcard) 다른 해결책. –

관련 문제