2012-08-25 111 views
0

我正在尝试捕获照片并将其显示在图像视图中。Android - 相机问题

 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"); 

红线而我呢不是这个原因,任何一个可以请解释我什么,我做错了或任何其他解决我的问题?

+0

您能否至少尝试以可读的方式设置您的问题的格式。这会增加你获得答案的机会。 – Ridcully

回答

0

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

+0

请问你解释一下这行代码吗? 位图theImage =(位图)*** data ***。getExtras()。get(“data”); 我试图研究它,但我无法理解它。 –

+0

我该如何解释你的代码?如果你从某个地方复制过它,看看你是否在那里找到解释,或者搜索教程。 – Ridcully

+0

我已经从教程中试过这段代码。 ok –

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); 
     } 

就是这样:)

}