2013-06-03 6 views
0

일주일 정도 작업했기 때문에 왜 미리보기 이미지를 얻을 수 없는지 알 수 없습니다. 나는 실제 이미지가 아니라 단지 그것을 필요로하며, 의도대로 전달 된 urifile없이 Mediastore.captureimage를 통해 얻는 것이 편리하다는 것을 알았습니다. 내 코드 :의도 한 콘텐츠를 얻는 방법 (mediastore.ACTION_IMAGE_CAPTURE의 미리보기 이미지)

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 
    private ImageView image; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    image = (ImageView) findViewById(R.id.image); 
    } 

    public void vignette(View vue) { 
     Intent intention = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(intention, 1); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1) { 
    Uri imageUri = null; 
    if (data != null) { 
    if (data.hasExtra("data")) { 
      Bitmap vignette = (Bitmap) data.getExtras().get("data"); 
      image.setImageBitmap(vignette); 
    } 
    } 
    } 
} 
} 

는 사실, 데이터가 null는 아니고, 하지만 hasExtra ("데이터") null을 제공합니다. 인 텐트 {act = 인라인 데이터 dat = 콘텐츠 : // 미디어/외부/이미지/미디어/8767 (엑스트라가 있음)} ... 추가 정보를 얻을 수있는 방법이 있습니까?

답변

0

중위는이 당신은 항상 당신의 필요 조건

vignette =Bitmap.createScaledBitmap(vignette ,100,100, true); 

      image.setImageBitmap(vignette); 

이 뜻에 비트 맵의 ​​크기를 조정할 수 있습니다

비트 맵 줄 것이다 비트 맵에서 onActivityResult를 기능에

Uri imageUri = data.getData(); 
     Bitmap vignette = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 

호출이 비트 맵을 얻기 위해 100 * 100의 비트 맵을 생성하십시오.