有没有办法配置Android软键盘的高度和宽度

时间:2015-11-23 08:08:51

标签: android android-input-method

我正在开发一款适用于Android的软键盘,其目标是扩展原有的8pen键盘,现已停产。
我有基本的结构工作,现在想要使键盘的大小用户可配置。

有没有办法配置键盘的高度和宽度?
由于有些人问我的代码是什么样的代码片段,所以可以在这里找到完整的最新版本 - > 8Vim

    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    /*Logging stuff*/
    int width = View.MeasureSpec.getSize(widthMeasureSpec);
    int height = View.MeasureSpec.getSize(heightMeasureSpec);
    /*Various other Stuff*/
    radius = (0.325f * width) / 2;
    centre = new PointF((width/2),(height/2));
    circle = new Circle(centre, radius);
    // Set the new size because the "onMeasure" contract so specifies
    setMeasuredDimension(width, height);
    Logger.v(this, "onMeasure returns");
}

更新:

所以我发现InputServiceMethod类有一个名为getMaxWidth()的方法,如果我设置键盘的宽度小于我的视图类(负责显示键盘),则右边的剩余区域键盘黑了,不再可用了。

我明白如果我在视图类中更改键盘的高度,我可能能够实现我想要的东西,但是......是否可以改变用户视图的高度心血来潮?欢迎任何建议/想法/经验。

2 个答案:

答案 0 :(得分:0)

在这里,您可以使用代码,它只是您想要的

mRootWindow = getWindow();
mRootView = mRootWindow.getDecorView().findViewById(android.R.id.content);
mRootView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout(){
    Rect r = new Rect();
    View view = mRootWindow.getDecorView();
    view.getWindowVisibleDisplayFrame(r);
    // r.left, r.top, r.right, r.bottom
}
});

答案 1 :(得分:0)

如果我没弄错,你想知道android手机的高度和宽度的软键盘然后按照这个链接,可能会帮助你。 Is there any way in android to get the height of virtual keyboard of device