簡體   English   中英

這種方法的含義是什么?

[英]What is the meaning of this method?

這是我的全部代碼:

public class photo extends Activity implements View.OnClickListener {

ImageView iv;
Button bt;
ImageButton ib;
Intent i ;
Bitmap bmp;
final static int cameraData =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    intsallttion();

}
private void intsallttion() {
    // TODO Auto-generated method stub
    iv = (ImageView) findViewById(R.id.iv);
    bt = (Button) findViewById(R.id.bt);
    ib = (ImageButton) findViewById(R.id.ib);

    bt.setOnClickListener(this);
    ib.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch(v.getId()){
    case R.id.bt:

        break;

    case R.id.ib:
        i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i,cameraData);
        break;
    }
}

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

我不明白這種方法:

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

這種方法有什么作用?

根據您的代碼,您正在調用相機捕獲圖像。 由於您使用startActivityForResult啟動了攝像機活動,因此您期望攝像機活動返回一些結果。

當圖像被進來的活動捕獲時,將使用捕獲的結果(圖像)調用startActivityForResult。

startActivityForResult調用android的內部意圖(在您的情況下,是打開相機,用戶可以拍照)。

拍照后,它將控制權返回給onActivityResult處理程序,您可以在其中檢查resultCode是否為RESULT_OK並采取必要的操作,例如在您的示例中使用iv.setImageBitmap(bmp);在ImageView上設置圖像iv.setImageBitmap(bmp);

您通過startActivityForResult打開了攝像機的活動,然后正如Libin startActivityForResult那樣,您在那里得到了結果; 結果就是圖片。 我試圖添加一些評論:

     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     // TODO Auto-generated method stub
      super.onActivityResult(requestCode, resultCode, data);
      // you check the result code that you got from the activity of the camera
      // If the user took successfully a picture you get RESULT_OK else RESULT_CANCELED
      if(resultCode==RESULT_OK){
           // The picture is communicated from the activity of the camera to your activity 
           // by intent as an extras Bundle : you put this bundle in bundle
           Bundle extras = data.getExtras();
           // you take the bitmap (your picture is in format bitmap)form this extras 
           bmp = (Bitmap) extras.get("data");
           // you are showing the bitmap in the ImageView iv
           iv.setImageBitmap(bmp);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM