2012-06-03 39 views
0

我學習機器人,我是一個初學者, 我試圖得到一個圖片,並將其轉到我的imageview, 但在調試模式下,我看到該應用程序執行該行: startActivityForResult(i,camdata); 把我帶到凸輪窗口,我得到圖片後,問我保存圖片,我保存它。 之後,注意到發生 - 我的意思是我沒有達到線onActivityResult(int requestCode,int resultCode,意圖數據)。 爲什麼? 的代碼:startActivityForResult()不要調用onActivityResult(int requestCode,int resultCode,Intent數據)?

package com.thenewboston.elyakim; 

import java.io.IOException; 
import java.io.InputStream; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.ImageView; 

public class Cam extends Activity implements OnClickListener{ 

    ImageButton ib; 
    Button b; 
    ImageView iv; 
    Intent i; 
    final static int camdata = 0; 
    Bitmap bmp ; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.photo); 
     initialize(); 
     InputStream is1 = getResources().openRawResource(R.drawable.ic_launcher); 
     bmp = BitmapFactory.decodeStream(is1); 

    } 
    private void initialize() { 
     // TODO Auto-generated method stub 
     iv = (ImageView) findViewById(R.id.imageView1); 
     ib = (ImageButton) findViewById(R.id.imageButton1); 
     b = (Button) findViewById(R.id.button1); 
     b.setOnClickListener(this); 
     ib.setOnClickListener(this); 
    } 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     switch (arg0.getId()){ 
     case R.id.button1: 
      try { 
       getApplicationContext().setWallpaper(bmp); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      break; 

     case R.id.imageButton1: 
      i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(i,camdata); 
      break; 

     } 

     } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode==RESULT_OK){ 
      Bundle extras = data.getExtras(); 
      bmp = (Bitmap) extras.get("data"); 
      iv.setImageBitmap(bmp); 
     } 
     } 
    } 

回答

1
if(requestCode==RESULT_OK){ 
     Bundle extras = data.getExtras(); 
     bmp = (Bitmap) extras.get("data"); 
     iv.setImageBitmap(bmp); 
    } 

必須是

if(requestCode==camdata){ 
    if(resultCode==RESULT_OK){ 
     iv.setImageUri(Uri.parse(data.getDataString())); 
    } 
} 

上述顯示器中的ImageView

+0

THX所選擇的圖像也可以在我的代碼替換requestCode到發送resultCode – user1082943

相關問題