5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间logo的二维码
16lz
2022-04-06
android判断键盘状态两种方法:
1:http://www.it165.net/pro/html/201206/2987.html
protected void onLayout(boolean changed, int l, int t, int r, int b) {super.onLayout(changed, l, t, r, b);if(!mHasInit) {mHasInit = true;mHeight = b;if(onKeyboardStateChangedListener != null) {onKeyboardStateChangedListener.onKeyboardStateChanged(KEYBOARD_STATE_INIT);}} else {mHeight = mHeight < b ? b : mHeight;}if(mHasInit && mHeight > b) {mHasKeyboard = true;if(onKeyboardStateChangedListener != null) {onKeyboardStateChangedListener.onKeyboardStateChanged(KEYBOARD_STATE_SHOW);}}if(mHasInit && mHasKeyboard && mHeight == b) {mHasKeyboard = false;if(onKeyboardStateChangedListener != null) {onKeyboardStateChangedListener.onKeyboardStateChanged(KEYBOARD_STATE_HIDE);}}}
2.http://blog.csdn.net/h7870181/article/details/8332991
http://blog.csdn.net/yellowcath/article/details/8663527
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
if(imm.hideSoftInputFromWindow(editText.getWindowToken(), 0))
{
imm.showSoftInput(editText,0);
//软键盘已弹出
}
else
{
//软键盘未弹出
}
二,系统键盘事件捕获:
http://blog.csdn.net/yzzst/article/details/45747507
su
getevent –l
操作 | 输出信号 |
---|---|
按下电源键 | /dev/input/event0: EV_KEY KEY_POWER DOWN /dev/input/event0: EV_SYN SYN_REPORT 000000 /dev/input/event0: EV_KEY KEY_POWER UP /dev/input/event0: EV_SYN SYN_REPORT 000000 |
音量键下 | /dev/input/event8: EV_KEY KEY_VOLUMEDOWN DOWN /dev/input/event8: EV_SYN SYN_REPORT 00000000 /dev/input/event8: EV_KEY KEY_VOLUMEDOWN UP /dev/input/event8: EV_SYN SYN_REPORT 00000000 |
音量键上 | /dev/input/event8: EV_KEY KEY_VOLUMEUP DOWN /dev/input/event8: EV_SYN SYN_REPORT 00000000 /dev/input/event8: EV_KEY KEY_VOLUMEUP UP /dev/input/event8: EV_SYN SYN_REPORT 00000000 |
按下物理按键“1” | /dev/input/event0: EV_KEY KEY_1 DOWN /dev/input/event0: EV_KEY KEY_1 UP |
按下物理按键“q” | /dev/input/event0: EV_KEY KEY_Q DOWN /dev/input/event0: EV_KEY KEY_Q UP |
按下软键盘上的“q”字母 | /dev/input/event0: EV_ABS ABS_X 0000001b /dev/input/event0: EV_ABS ABS_Y 000001d5 /dev/input/event0: EV_KEY BTN_TOUCH DOWN /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_KEY BTN_TOUCH UP /dev/input/event0: EV_SYN SYN_REPORT 00000000 |
按下软件键盘上的的“1”按键 | /dev/input/event0: EV_ABS ABS_X 00000019 /dev/input/event0: EV_ABS ABS_Y 000001d7 /dev/input/event0: EV_KEY BTN_TOUCH DOWN /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_KEY BTN_TOUCH UP /dev/input/event0: EV_SYN SYN_REPORT 00000000 |
三:生成中间logo的二维码:
http://blog.csdn.net/jerehedu/article/details/45746369
/** * 生成二维码 * @param string 二维码中包含的文本信息 * @param mBitmap logo图片 * @param format 编码格式 * @return Bitmap 位图 * @throws WriterException */ public Bitmap createCode(String string,Bitmap mBitmap, BarcodeFormat format) throws WriterException { Matrix m = new Matrix(); float sx = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getWidth(); float sy = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getHeight(); m.setScale(sx, sy);//设置缩放信息 //将logo图片按martix设置的信息缩放 mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), m, false); MultiFormatWriter writer = new MultiFormatWriter(); Hashtable<EncodeHintType, String> hst = new Hashtable<EncodeHintType, String>(); hst.put(EncodeHintType.CHARACTER_SET, "UTF-8");//设置字符编码 BitMatrix matrix = writer.encode(string, format, 400, 400, hst);//生成二维码矩阵信息 int width = matrix.getWidth();//矩阵高度 int height = matrix.getHeight();//矩阵宽度 int halfW = width / 2; int halfH = height / 2; int[] pixels = new int[width * height];//定义数组长度为矩阵高度*矩阵宽度,用于记录矩阵中像素信息 for (int y = 0; y < height; y++) {//从行开始迭代矩阵 for (int x = 0; x < width; x++) {//迭代列 if (x > halfW - IMAGE_HALFWIDTH && x < halfW + IMAGE_HALFWIDTH && y > halfH - IMAGE_HALFWIDTH && y < halfH + IMAGE_HALFWIDTH) {//该位置用于存放图片信息 //记录图片每个像素信息 pixels[y * width + x] = mBitmap.getPixel(x - halfW + IMAGE_HALFWIDTH, y - halfH + IMAGE_HALFWIDTH); } else { if (matrix.get(x, y)) {//如果有黑块点,记录信息 pixels[y * width + x] = 0xff000000;//记录黑块信息 } } } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 通过像素数组生成bitmap bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; }
更多相关文章
- Android常用UI组件 - TextView
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentat
- android xml 分析1--- AndroidManifest.xml
- android获取手机信息大全
- android 获取手机信息(device ip,os version etc.)
- android 获取手机系统信息
- android 手机获取当前连接的wifi配置信息
- android 软键盘回车键捕获
- Android(安卓)通过经纬度获取地理位置信息