我想在显示软件键盘时将黑色背景覆盖(约60%alpha)放在我的Activity布局上。当键盘消失时 - 布局叠加也会消失。基本上,我想在gmail应用程序中实现类似的效果(见下面的图片)。
显示了键盘(您可以看到带有某些字母的黑色叠加层):
键盘被解雇(叠加也消失了):
达到这种效果的最佳方法是什么?
答案 0 :(得分:0)
获取“活动布局”的背景可绘制,然后在显示键盘时设置alpha。
View backgroundView = findViewById(R.id.background); //id of your layout
Drawable background = backgroundView.getBackground();
background.setAlpha(153); //153 is 60% of 255 (completely opaque)
答案 1 :(得分:0)
您可以在布局中的所有内容上查看,隐藏键盘时为0 alpha,键盘可见时为0.6 alpha,或者您可以研究ViewOverlay并使用相同的逻辑在根视图上使用它。
要知道何时使叠加层可见,请使用此
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
//Show overlay
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
//Hide overlay
}
}