我创建了一个自定义警告对话框,其中附有图像视图,并想知道是否可以增加对话框和图像的大小以适应整个屏幕?如果是这样你会怎么做?
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();
}
答案 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类,这是一个非常可定制的浮动容器。