1

ImageViewと 2でカスタム ダイアログを使用していButtonます。

  1. ギャラリーから画像を選択する最初のボタン
  2. カメラからの画像をクリックする 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ありがとう

4

2 に答える 2

2

を使用してこれを実行できるかどうかはわかりませんDialogが、カスタム ダイアログの代わりに、ダイアログの を持つアクティビティを使用してみてくださいUI。をダイアログとして使用するActivityには、 でこれを定義する必要がありますAndroidManifest.xml

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

コメントの編集

  1. 私の提案 (私たちの目的にActivity合わせてDialog名前を付けましょう) を使用した場合は、メソッドをDialogActivityオーバーライドできるため、その必要はありません。onActivityResultDialogActivity
  2. 私の提案を使用していないか、使用したが、撮影した画像を別のActivity方法で渡す必要がある場合。カメラアプリで撮影した画像を別のアプリに渡すには、その画像のパスとしてを渡し、2 番目のパスにアクセスするのActivityが最も効率的な方法だと思います。このようなもの:IntentStringActivity

最初Activity( caller 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);

2 番目Activity(Activity呼ばれている) では、それを B と呼びましょう:

String image_path = getIntent().getExtras().getString("path");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
于 2012-07-11T11:53:18.877 に答える
0

ダイアログボックスをもう一度表示すると思います。

  @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);            
    }

}
于 2012-07-11T13:01:50.163 に答える