2012-08-25 114 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); 
     } 

就是這樣:)

}