2013-10-05 88 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

相关问题