2013-01-20 90 views
0

我正在使用下面的代碼,當按下按鈕時使用相機拍照。相機沒有拍照按鈕按

但是,當我運行代碼時,它只會在按下按鈕後啓動相機應用程序,但不會拍攝照片。爲什麼這不起作用?

我想在按下按鈕時拍一張照片並將其存儲在SD卡上,可以在相冊應用程序中查看。

public class demo extends Activity 
{ 
Button ButtonClick; 
int CAMERA_PIC_REQUEST = 1337; 


@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

ButtonClick =(Button) findViewById(R.id.Camera); 
ButtonClick.setOnClickListener(new OnClickListener() 
    { 
    @Override 
    public void onClick(View view) 
    { 
     Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     // request code 

     startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

    } 
    }); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if(requestCode == 1337) 
    { 
    // data.getExtras() 
     Bitmap thumbnail = (Bitmap) data.getExtras().get("data");   
    } 
    else 
    { 
    Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG).show(); 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
} 
+0

**üü擷取照片,一旦相機打開?? ** –

+0

不,我該怎麼做?,我以爲它會按下按鈕時獲取圖片/位圖。但是如果我必須明確地捕捉圖片,那麼這是我沒有做過的一步。 – Kevik

+0

您需要通過點擊圖片多走一步,一旦相機應用程序被打開,用於捕捉圖片。 –

回答

0

呀,這個默認的行爲。有兩種方法。

1)啓動相機應用的意圖(你這樣做),然後通過相機應用的畫面(如默認的攝像頭呢,通過點擊相機拍攝照片的按鈕或硬鍵。)

2)創建自定義通過使用Camera類和Surfaceview的相機視圖。它會給你完全控制,做任何你想用相機(儘管有限)

+0

我希望無需點擊任何東西即可拍照。比如設置一個定時器,每5分鐘拍攝一張圖片,或者當運動檢測器告訴它時拍攝圖片。所以我將不得不設置surfaceview。 – Kevik

+0

所以在這種情況下,你自己的相機應用程序將始終在前方??。或者你認爲你需要從服務或其他方面做到這一點。還有一個問題通過點擊圖片你是指從相機或屏幕截圖的圖片? – AAnkit

+0

是的,我打算一直在前臺製作應用程序。我想將運動傳感器附加到相機上以檢測運動並在有運動時拍攝照片,但這是最後一步。第一步是讓它通過點擊監聽器拍攝照片。我得到那個工作後,我會做更高級的部分,讓運動傳感器使相機拍照。但它以同樣的方式工作。如果我可以讓一個按鈕onclick監聽器點擊使它拍攝一張照片,那麼我可以做一個運動傳感器一樣。 – Kevik