1. 程式人生 > >在Android中獲取虛擬鍵盤高度的方法

在Android中獲取虛擬鍵盤高度的方法

import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;
import java.lang.reflect.Method;
/**
 * Created by Avater on 2016/11/24 0024.
 */
public class VirtualkeyboardHeight {
    /**
     * 獲取螢幕高度
*
     * @return
*/
public static int getScreenDPI
(Context context) {
        int dpi = 0;
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
Class c;
        try {
            c = Class.forName("android.view.Display"
);
Method method = c.getMethod("getRealMetrics"DisplayMetrics.class);
method.invoke(displaydisplayMetrics);
dpi = displayMetrics.heightPixels;
catch (Exception e) {
            e.printStackTrace();
}

        return dpi;
}

    /**
     * 獲取虛擬鍵盤的高度
*
     * @return
*/
public static int getBottomStatusHeight
(Context context) {
        int totlaHeight = getScreenDPI(context);
        int contentHeight = getScreenHeight(context);
        return totlaHeight - contentHeight;
}

    /**
     * 獲取底部虛擬鍵盤的高度
*
     * @param context
@return
*/
private static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics out = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(out);
        return out.heightPixels;
}

}