[英]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.