在我的应用程序中,我在对话框中显示图像。如果用户按下按钮,则会出现对话框并占据整个屏幕的80%。背景将变暗,因为这是Android Dialog的默认行为。
Dialog dialog = new Dialog(ActQuiz.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
//nothing;
}
});
int width = (int) (getResources().getDisplayMetrics().widthPixels * 0.80);
int height = (int) (getResources().getDisplayMetrics().heightPixels * 0.80);
dialog.getWindow().setLayout(width, height);
ImageView imageView = new ImageView(ActQuiz.this);
String uri = "@drawable/" + info.getInfopicture();
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable myDrawable = ContextCompat.getDrawable(ActQuiz.this, imageResource);
imageView.setImageDrawable(myDrawable);
new PhotoViewAttacher(imageView);
dialog.addContentView(imageView, new RelativeLayout.LayoutParams(width, height));
dialog.show();
所以我想要实现的是禁用Button的调光,这在对话框后面是可见的。
这是可能的还是我只能删除整个背景的调光?
答案 0 :(得分:1)
这是可能的还是我只能删除整个背景的调光?
除了某些视图或某个区域外,无法指示Dialog
将所有内容调暗。没有这样的API可以做到这一点。
您可以做的是将您的自定义绘图作为Dialog
窗口的背景提供。该drawable将被赋予Rect
坐标为Button
和Rect
的屏幕。除了提供的矩形之外,它将在任何地方绘制一个暗淡的(基本上是半透明的黑色)。看起来xfermode SrcOut是应该应用的模式。