2013-10-05 114 views
0

我想捕獲Android上的圖像並將其顯示在圖像視圖上; 當活動開始時調用的捕獲意圖和圖像視圖處於調用捕獲的相同活動意圖 當我運行應用程序相機捕獲圖像TWICE然後在圖像視圖中顯示圖像?有什麼想法爲什麼?我該如何解決它?在Android上捕獲圖像

> Activity.java

public class View extends Activity{ 
    ImageView imgview; 
    Bitmap Bmp; 
    final static int cameraData = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.camera); 
     imgview = (ImageView) findViewById(R.id.imgview); 
     Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

     startActivityForResult(i, cameraData); 


    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK) { 
      Bundle extras = data.getExtras(); 
      Bmp = (Bitmap) extras.get("data"); 
      imgview.setImageBitmap(Bmp); } 


    }} 

> camera.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:opencv="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 


    <ImageView 
     android:id="@+id/imgview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:contentDescription="Image view" 
     android:src="@drawable/ic_launcher" 
     /> 

</FrameLayout> 

回答

0

我在您的代碼上主演,看不到任何東西,看起來對我除了相機應用程序之外的東西都很熟悉。

這裏的指導Camera Apps

一目瞭然,你做到以下幾點:

  1. 你得到一個Camera實例和CameraPreview(一FrameLayout),並把預覽到您的佈局。
  2. 對於捕捉圖像(無論在應用程序中觸發這個圖像),您使用Camera.takePicture()
  3. 這又調用PictureCallbackonPictureTaken()。在onPictureTaken()內,您將獲得包含圖像數據的文件getOutputMediaFile()
  4. 將其複製並享受數據。
+0

謝謝..我會試試這個 – QAIS

0

你最好打電話startActivityForResult()在事件(比如一個按鈕,點擊EG)。

而不是直接調用形式onCreate(),添加一個按鈕,並啓動按鈕點擊內的相機意圖。

+0

謝謝,但我想捕獲圖像,但沒有指定任何事件 – QAIS

0

基本上只是一種猜測,但我認爲你的活動onCreate方法也被稱爲相機拍攝的第一張圖像後(!?)嘗試像

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.camera); 
    imgview = (ImageView) findViewById(R.id.imgview); 

    if(!getIntent.hasExtra("data")){ 
     Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(i, cameraData); 
    } 
} 

我不是很肯定這一點,可以」現在測試一些東西(這裏沒有安裝sdks),但我希望它有幫助!

+0

謝謝,但它沒有工作 – QAIS

相關問題