Android:单击相机中的图像并在对话框中显示图像

Posted

技术标签:

【中文标题】Android:单击相机中的图像并在对话框中显示图像【英文标题】:Android: clicking the image in camera and show the image in dialogbox 【发布时间】:2012-07-11 00:37:12 【问题描述】:

我正在使用带有 ImageView 和 2 Button 的自定义对话框。

    从图库中选择图片的第一个按钮 第二个按钮可点击相机中的图像

我想在对话框的ImageView 中显示图像..

btn1.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
        Dialog();   
        

        private void Dialog() 
            // TODO Auto-generated method stub
            final Dialog dialog=new Dialog(editevent1.this);
            dialog.setContentView(R.layout.promote2);
            ImageView image =(ImageView)findViewById(R.id.image_camera);
            Button d=(Button)dialog.findViewById(R.id.button2);
            Button f=(Button)dialog.findViewById(R.id.button3);

            dialog.show();
            d.setOnClickListener(new View.OnClickListener() 

                @Override
                public void onClick(View v) 
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(Intent.ACTION_PICK);
                    intent.setType("image/*");
                    startActivityForResult(intent, 1);


                
            );
            f.setOnClickListener(new View.OnClickListener() 

                @Override
                public void onClick(View v) 
                    // TODO Auto-generated method stub
                    Intent cameraintent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                    startActivityForResult(cameraintent, CAMERA_PIC_REQUEST);
                
            );


            


);



@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 

    super.onActivityResult(requestCode, resultCode, data);
    if( requestCode == CAMERA_PIC_REQUEST)
       
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        ImageView image =(ImageView)findViewById(R.id.image_camera);
        image.setImageBitmap(thumbnail);
    
    else 
    
        Toast.makeText(this, "Picture NOt taken", Toast.LENGTH_LONG);            
    


请告诉我如何在ImageView 中获取图像,无论是从图库中选择还是从相机单击时,图像都在DialogBox 中。谢谢

【问题讨论】:

【参考方案1】:

我不确定这是否可以使用Dialog 来完成,但不要使用自定义对话框,而是尝试使用具有UI 对话框的活动。要将Activity 用作对话框,您需要在AndroidManifest.xml 中定义它:

<activity android:theme="@android:style/Theme.Dialog" />

编辑评论

    如果您使用了我的建议(ActivityDialog 的 UI,我们将其命名为 DialogActivity),您不必这样做,因为您可以覆盖您的 onActivityResult 方法DialogActivity。 如果您没有使用我的建议或使用了它但需要将拍摄的图像传递给另一个Activity。要将相机应用程序拍摄的图像从一个Activity 传递到另一个,我相信最有效的方法是将Intent 作为String 传递该图像的路径并访问第二个路径Activity。像这样:

在第一个Activity(调用者Activity)中,我们称它为A:

Intent i = new Intent(A.this, B.class);
i.putExtra("path", path); //The path is a String variable holding the path where the image was saved.
startActivity(i);

在第二个Activity(被调用的Activity)中,我们称之为B:

String image_path = getIntent().getExtras().getString("path");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);

【讨论】:

我找到了解决方案。但是你能告诉我如何把这张图片从这个活动带到另一个活动...【参考方案2】:

我想你会再次显示你的对话框。

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    
        super.onActivityResult(requestCode, resultCode, data);
        if( requestCode == CAMERA_PIC_REQUEST)
           
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            ImageView image =(ImageView)findViewById(R.id.image_camera);
            image.setImageBitmap(thumbnail);
            **dialog.show();**


        
    else 
    
        Toast.makeText(this, "Picture NOt taken", Toast.LENGTH_LONG);            
    


【讨论】:

以上是关于Android:单击相机中的图像并在对话框中显示图像的主要内容,如果未能解决你的问题,请参考以下文章

从相机捕获图像并在活动中显示

Android - 如何从相机捕获图像或从库中添加

Android : 将图库功能与相机捕捉相结合

如何在特定的imageView上上传特定的图像点击来自android中的画廊和相机

从图库上传图像或单击移动相机流星 android 应用程序中的图像

android方向 - 意图问题(相机)