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

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

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

我想在对话框的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 中。谢谢

【问题讨论】:

    标签: android android-camera android-imageview android-gallery android-dialog


    【解决方案1】:

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

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

    编辑评论

    1. 如果您使用了我的建议(ActivityDialog 的 UI,我们将其命名为 DialogActivity),您不必这样做,因为您可以覆盖您的 onActivityResult 方法DialogActivity
    2. 如果您没有使用我的建议或使用了它但需要将拍摄的图像传递给另一个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);            
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多