2014-03-01 53 views
0

當我拍攝圖片時,圖片將保存在硬盤驅動器上,並在imageview中打開圖片。保存圖片並在圖像視圖中打開

在我的命令中,圖片將被保存,但應用程序崩潰。

public class Note extends Activity { 

TextView t; 
ImageView iv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.note); 
    iv=(ImageView) findViewById(R.id.imageView); 

    Button btn = (Button) findViewById(R.id.photo); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(intent, 0); 
     } 
    }); 


} 
public void button (View view){ 
    Intent intent = new Intent(view.getContext(),Note2.class); 
    startActivityForResult(intent, 0); 
} 



@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode==0) 
    { 
    Bitmap theImage = (Bitmap) data.getExtras().get("data"); 
     iv.setImageBitmap(theImage); 

    }} 
} 

如何重寫命令使其工作?

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if(requestCode==0) 
     { 
     Bitmap theImage = (Bitmap) data.getExtras().get("data"); 
      iv.setImageBitmap(theImage); 
+0

發佈你的logcat? – Nambi

回答

0

首先,確保你的Manifest有這個權限:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

其次,你的onActivityResult方法應該是這樣的以宣佈一個File並存儲Bitmap到設備如下:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (resultCode == RESULT_OK) { 
switch(requestCode){ 
    case 0: 
    final File file = getTempFile(this); 
    try { 
     Bitmap captureBmp = Media.getBitmap(getContentResolver(), Uri.fromFile(file)); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    break; 
    } 
} 
} 

這是一個很好的example捕獲圖像

相關問題