我正在为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()的方法,如果我在视图类(负责显示键盘)中将键盘的宽度设置为小于此宽度,则键盘右侧的其余区域将变黑,不再可用。
我的想法是,如果我改变视图类中键盘的高度,我可能能够实现我想要的,但是。。。有可能根据用户的喜好改变视图的高度吗?欢迎任何建议/想法/经验。
开始吧,使用代码,这正是您想要的
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
}
});
如果我没有错,你想知道安卓手机的软键盘的高度和宽度,那么点击这个链接,可能会对你有所帮助。在android中有没有任何方法可以获得设备的虚拟键盘的高度