2010-11-01 19 views

回答

1

我在developers.android.com上看到了同樣的情況,但我的模擬器有一個工作攝像頭應用程序。在模擬器本身的相機按鈕不會做任何事情,但我可以從我的應用程序訪問它,它給了我一個攝像頭是這樣的:

Android emulator camera

你看左下角的按鈕取圖片,然後彈出一個OK按鈕,它會將其返回到您的代碼。

我的仿真器設置:

  • 的Android 1.6(API等級4)
  • 皮膚:HVGA
  • SD卡:1024M
  • hw.lcd.densite:160

我相信你需要SD卡,不知道其他什麼。

+0

xml_activity的外觀如何?你有一個按鈕或只是表面? – Troj 2010-11-03 12:14:52

+0

我沒有關於我的佈局定義的相機什麼,我只是AndroidManifest.xml中有幾個項目:\t <使用許可權 \t \t機器人:名字=「android.permission.CAMERA」 /> \t <使用功能 \t \t android:name =「android.hardware.camera」/> – 2010-11-03 14:12:11

+0

所以你也有一個按鈕與上面的屏幕,我得到了? – Troj 2010-11-03 16:58:21

1

你不能使用模擬器拍照,我聽說是使用網絡攝像頭集成功能的庫在那裏,但我還沒有使用它,所以它可能是一個MITH。

所以,很遺憾地說,但你需要一個設備來測試。

每developers.android.com:

模擬器限制在這個 版本中, 仿真器的限制包括:

  • 用於撥打或接聽實際電話不支持。但是,您可以通過模擬器控制檯模擬 電話(已接收和已接收) 。
  • 不支持USB連接
  • 不支持相機/視頻捕捉(輸入)。
  • 用於設備連接的耳機
  • 不支持不支持用於確定連接狀態
  • 用於確定電池的充電水平和AC充電狀態
  • 不支持用於確定SD卡插入無支撐/彈出
  • 否支持藍牙

希望有一天他們會添加它。

1

您可以使用USB調試在物理設備上調試攝像頭應用程序。

要拍攝並保存圖片,您將需要一個類似的回調: `

Camera.PictureCallback mPictureCallback =新Camera.PictureCallback(){

@Override 
    public void onPictureTaken(byte[] data, Camera camera) { 

     try { 
      File sdTargetDirectory = new File("/sdcard/directory"); 
      sdTargetDirectory.mkdirs(); // make the above directory if it does not exist 
      FileOutputStream fos = null; 
      String fileName = "temp"; 

      Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 

      fos = new FileOutputStream(sdTargetDirectory.toString() +"/" + fileName + ".jpg"); 

      BufferedOutputStream bos = new BufferedOutputStream(fos); 

      bitmap.compress(CompressFormat.JPEG, 100, bos); 

      bos.flush(); 
      bos.close(); 


     } 
     catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
}; 

您可以實現回調在如下觸摸或按鈕事件中:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction() & MotionEvent.ACTION_MASK) { 
    case MotionEvent.ACTION_UP: 
     camera.takePicture(null, null, mPictureCallback); 
     break; 
    } 
    return true; 
} 
0

請在模擬器設置中啓用相機。你應該使仿真器設置爲:

camera support = yes 

我認爲這個功能可以從Android 4.0版本,但我不確定。

相關問題