Android获取虚拟软键盘高度

 1 public static int getDpi(Context context) {
 2         int dpi = 0;
 3         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
 4         Display display = windowManager.getDefaultDisplay();
 5         DisplayMetrics displayMetrics = new DisplayMetrics();
 6         @SuppressWarnings("rawtypes")
 7         Class c;
 8         try {
 9             c = Class.forName("android.view.Display");
10             @SuppressWarnings("unchecked")
11             Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
12             method.invoke(display, displayMetrics);
13             dpi = displayMetrics.heightPixels;
14         } catch (Exception e) {
15             e.printStackTrace();
16         }
17         return dpi;
18     }
1 public static int getScreenHeight(Context context) {
2         WindowManager wm = (WindowManager) context
3                 .getSystemService(Context.WINDOW_SERVICE);
4         DisplayMetrics outMetrics = new DisplayMetrics();
5         wm.getDefaultDisplay().getMetrics(outMetrics);
6         return outMetrics.heightPixels;
7     }
 1 /**
 2      * 获取 虚拟按键的高度
 3      *
 4      * @param context
 5      * @return
 6      */
 7     public static int getBottomStatusHeight(Context context) {
 8         int totalHeight = getDpi(context);
 9
10         int contentHeight = getScreenHeight(context);
11
12         return totalHeight - contentHeight;
13     }
时间: 2024-10-19 07:58:15

Android获取虚拟软键盘高度的相关文章

Android 获取虚拟按键的高度

//获取虚拟按键的高度 public static int getNavigationBarHeight(Context context) { int result = 0; if (hasNavBar(context)) { Resources res = context.getResources(); int resourceId = res.getIdentifier("navigation_bar_height", "dimen", "androi

IOS开发—获取ios软键盘高度

- (void)viewDidLoad { [super viewDidLoad]; //增加监听,当键盘出现或改变时收出消息 <pre name="code" class="objc"><p style="margin-top: 0px; margin-bottom: 0px; font-size: 13px; font-family: Menlo; color: rgb(61, 29, 129);"><span

Android项目:输入法软键盘显示/隐藏的监听和控制,InputMethodManager用法研究

在项目开发中,用到编辑框的地方经常涉及到要监听或者控制软键盘的显示/隐藏状态.本以为这是很容易解决的一个小问题,没想到当初碰到这个问题才明白还得花点小心思才能整好.现将针对软键盘的显示/隐藏状态的监听/监控方法做一些总结,以备后用. 一.点击空白处隐藏软键盘 这是具有编辑框焦点的页面对输入法软键盘状态监听的一般需求和解决方法. 首先获得InputMethodManager:        InputMethodManager manager = (InputMethodManager) getS

Android 中自定义软键盘

Android 中自定义软键盘    图一为搜狗输入法.图二为自定义密码键盘.图三为自定义密码键盘 java源文件 package com.keyboarddemo; import android.content.Context; import android.graphics.Paint; import android.graphics.Rect; import android.text.method.PasswordTransformationMethod; import android.u

Android WebView中软键盘会遮挡输入框相关问题

要想实现这样的软键盘出现的时候会自己主动把输入框的布局顶上去的效果,须要设置输入法的属性,有下面两种设置方式: 一.在java代码中设置例如以下: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE| WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 二.在androidmanifest.xml中设置与其相应的activity的属性

&lt;Android&gt;监听软键盘打开收起事件(软键盘自带收起按钮)

最近在公司开发cocos2dx上的android输入框控件,遇到软键盘的事件监听,通常软键盘的收起方式大致3种: 1.点击软键盘右下角的Return按钮(系统收起) 2.输入框焦点时按返回按钮(系统收起) 3.点击软键盘和输入框的外部(自发收起) 4.点击软键盘自带的收起按钮(软键盘收起) 前三种事件可以监听,方式都比较简单 1.点击软键盘右下角的Return按钮 给输入框设置监听 editText.setOnEditorActionListener(new OnEditorActionList

Android:隐藏输入法软键盘

1.概述 1) 给LinearLayout 注册click 事件,点击后隐藏输入法软键盘.为什么要叫软键盘,很奇怪呢.通过Activity 的getSystem(Context.INPUT_METHOD_SERVICE) 获取到输入法的对象,接着把它隐藏掉. 2) EditText 输入的字符达到最大值时隐藏输入法软键盘.注册EditText 的TextWatcher 事件,通过判断输入的字符数达到最大长度时隐藏掉输入法软键盘. 2.Activity 后台代码 public class Edit

Android 弹出软键盘android:windowSoftInputMode设置总结

当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入.或者是有使用framentlayout悬浮在底部的button也会挡住输入框. 一.解决办法 方法一: 在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 方法二:

彻底搞定Android开发中软键盘的常见问题

软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog. InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示.当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示. 软键盘显示的调整 Android定义了一个属性,名字为windowSoftInputMode, 这个属性用于设置Activity主