如何在Android中显示软件键盘时显示背景覆盖

时间:2015-08-08 19:25:44

标签: java android android-layout android-activity android-sdk-tools

我想在显示软件键盘时将黑色背景覆盖(约60%alpha)放在我的Activity布局上。当键盘消失时 - 布局叠加也会消失。基本上,我想在gmail应用程序中实现类似的效果(见下面的图片)。

显示了键盘(您可以看到带有某些字母的黑色叠加层):

enter image description here

键盘被解雇(叠加也消失了):

enter image description here

达到这种效果的最佳方法是什么?

2 个答案:

答案 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
    }
}

此键盘上的更多内容更改了代码:link
有关ViewOverlay的更多信息:link