Android - 相机问题

时间:2012-08-25 18:05:39

标签: bitmap android-camera

我正在尝试拍摄照片并将其显示在图像视图中。

        public class next extends Activity{

         public void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.next);         Button cbutton = (Button) findViewById(R.id.capture); /* Capture Photo */
                    cbutton.setOnClickListener(new OnClickListener() {

                public void onClick(View v)         { 
                        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(intent,0);       }       });

             }
         @Override  
public void startActivityForResult(Intent intent, int requestCode) {        
ImageView iv
         = (ImageView) findViewById(R.id.imageView1);   
        if(requestCode == 0)        
    {       Bitmap theImage = (Bitmap) data.getExtras().get("data");
            iv.setImageBitmap(theImage);        
}}}

所以这是我用过的代码。现在的问题是我在“数据”下得到了红线

Bitmap theImage = (Bitmap) ***data***.getExtras().get("data");

我不是原因,任何人都能解释一下我做错了什么或者解决了我的问题吗?

2 个答案:

答案 0 :(得分:0)

变量data既未声明也未作为参数传递给您的方法,因此它标记为红色。

答案 1 :(得分:0)

此代码的问题在于我覆盖了错误的方法:

public void startActivityForResult(Intent intent, int requestCode) {        
ImageView iv
         = (ImageView) findViewById(R.id.imageView1);   
        if(requestCode == 0)        
    {       Bitmap theImage = (Bitmap) data.getExtras().get("data");
            iv.setImageBitmap(theImage);        
}}

因为结果将来自活动,它将通过以下方法显示:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {


        //ImageView iv = (ImageView) findViewById(R.id.imageView1);
        if(requestCode == 1)
        {

        Bitmap theImage = (Bitmap) data.getExtras().get("data");

                iv.setImageBitmap(theImage);
        }

就是这样:))

    }