带图像的全屏警报对话框

时间:2014-05-22 20:23:58

标签: android android-layout

我创建了一个自定义警告对话框,其中附有图像视图,并想知道是否可以增加对话框和图像的大小以适应整个屏幕?如果是这样你会怎么做?

private void loadPhoto(String filepath, int xmlView, int layoutView, int imageView){

    //Bitmap operations
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(filepath, options);

    //calculate the inSampleSize
    options.inSampleSize = calculateSampleImageSize(options, 128, 96);
    options.inJustDecodeBounds = false;

     AlertDialog.Builder imageDialog = new AlertDialog.Builder(context);
     LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
     //inflate the view
     View layout = inflater.inflate(xmlView, 
             (ViewGroup)findViewById(layoutView));

     ImageView image = (ImageView) layout.findViewById(imageView);
     image.setImageBitmap(BitmapFactory.decodeFile(filepath, options));
     imageDialog.setView(layout);
     imageDialog.setPositiveButton("Return", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            dialog.dismiss();
        }
    });

     imageDialog.create();
     imageDialog.show();

}

3 个答案:

答案 0 :(得分:1)

如果您想要全屏对话框,那么为此目的制作和使用单独的Activity可能要容易得多 - 您可以从活动灵活性中受益,而不需要打扰对话框限制。

答案 1 :(得分:0)

同意@Marcin Orlowski,也许一个Activity会更好但是如果你仍然想要使用对话框,要使它全屏,只需要在创建它时设置正确的样式。默认情况下,使用Theme.Dialog创建对话框,但您可以更改它。您需要做的就是:

AlertDialog.Builder imageDialog = new AlertDialog.Builder(context, android.R.Theme_DeviceDefault_NoActionBar_Fullscreen);

更改代码中的那一行,您应该看到对话框填满了屏幕

答案 2 :(得分:0)

如果您想填充几乎整个屏幕,请不要使用Dialog,这不是该类的目的。您可以尝试使用PopupWindow类,这是一个非常可定制的浮动容器。