Commit a1c093aa authored by 王雷's avatar 王雷

修复键盘绘制bug

parent 75c7f009
...@@ -37,7 +37,7 @@ repositories { ...@@ -37,7 +37,7 @@ repositories {
} }
group 'com.qmai.android.widget' group 'com.qmai.android.widget'
version '1.1.35-SNAPSHOT' version '1.1.39-SNAPSHOT'
gradlePublish { gradlePublish {
......
...@@ -7,6 +7,7 @@ import android.graphics.Paint ...@@ -7,6 +7,7 @@ import android.graphics.Paint
import android.inputmethodservice.Keyboard import android.inputmethodservice.Keyboard
import android.inputmethodservice.KeyboardView import android.inputmethodservice.KeyboardView
import android.util.AttributeSet import android.util.AttributeSet
import android.util.Log
import android.util.TypedValue import android.util.TypedValue
import android.widget.EditText import android.widget.EditText
import com.qmai.android.keyboardview.R import com.qmai.android.keyboardview.R
...@@ -17,11 +18,12 @@ import com.qmai.android.keyboardview.R ...@@ -17,11 +18,12 @@ import com.qmai.android.keyboardview.R
**/ **/
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
class MoneyNumberKeyBoardKeyBoard : KeyboardView { class MoneyNumberKeyBoardKeyBoard : KeyboardView {
private lateinit var keys: List<Keyboard.Key>
private var editWidget: EditText? = null private var editWidget: EditText? = null
private lateinit var mtextPaint: Paint private lateinit var mtextPaint: Paint
public var btnText = "结账" public var btnText = "结账"
//获取drawable资源
val drawable = context.resources.getDrawable(R.drawable.savestock)
private var defaultActionListener: DefaultKeyBoardActionListener? = private var defaultActionListener: DefaultKeyBoardActionListener? =
DefaultKeyBoardActionListener() DefaultKeyBoardActionListener()
...@@ -56,13 +58,15 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView { ...@@ -56,13 +58,15 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView {
override fun onDraw(canvas: Canvas?) { override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas) super.onDraw(canvas)
if (!::keys.isInitialized){
keys = getKeyboard().keys
}
canvas?.let { c -> canvas?.let { c ->
val keys: List<Keyboard.Key> = keyboard.keys val keys: List<Keyboard.Key> = keyboard.keys
keys.forEach { key -> keys.forEach { key ->
if (key.codes[0] == -11) { if (key.codes[0] == -11) {
//获取drawable资源
val drawable = context.resources.getDrawable(R.drawable.savestock)
//把真正的状态设置给上层绘制的key键 //把真正的状态设置给上层绘制的key键
drawable.state = key.currentDrawableState drawable.state = key.currentDrawableState
//rawable将在被绘制在canvas的哪个矩形区域内(这个矩形区域的坐标是以canvas左上角为坐标原点的) //rawable将在被绘制在canvas的哪个矩形区域内(这个矩形区域的坐标是以canvas左上角为坐标原点的)
...@@ -187,7 +191,7 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView { ...@@ -187,7 +191,7 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView {
mtextPaint.textAlign = Paint.Align.CENTER mtextPaint.textAlign = Paint.Align.CENTER
mtextPaint.textSize = sp2px(20f) mtextPaint.textSize = sp2px(20f)
mtextPaint.color = Color.parseColor("#333333") mtextPaint.color = Color.parseColor("#333333")
keys = getKeyboard().keys
} }
private fun sp2px(spValue: Float): Float { private fun sp2px(spValue: Float): Float {
...@@ -198,4 +202,9 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView { ...@@ -198,4 +202,9 @@ class MoneyNumberKeyBoardKeyBoard : KeyboardView {
) )
} }
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
mHandler
Log.d("TAG", "onDetachedFromWindow: ")
}
} }
\ No newline at end of file
...@@ -42,7 +42,7 @@ repositories { ...@@ -42,7 +42,7 @@ repositories {
group 'com.qmai.android.tools' group 'com.qmai.android.tools'
version '1.1.9-SNAPSHOT' version '1.1.11-SNAPSHOT'
gradlePublish { gradlePublish {
......
...@@ -13,7 +13,7 @@ import java.util.* ...@@ -13,7 +13,7 @@ import java.util.*
fun formatCurrentDate(pattern: String) = getTimeFormatStr(pattern) fun formatCurrentDate(pattern: String) = getTimeFormatStr(pattern)
private fun getTimeFormatStr(pattern: String, original: Any = Date()) = fun getTimeFormatStr(pattern: String, original: Any = Date()) =
SimpleDateFormat(pattern, Locale.getDefault()).format(original) SimpleDateFormat(pattern, Locale.getDefault()).format(original)
?: "" ?: ""
......
package com.qimai.android.tools
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.view.View
/**
* 设置背景
*/
fun View.setRoundRectBg(color: Int = Color.WHITE, cornerRadius: Float = 15f.dp) {
background = GradientDrawable().apply {
setColor(color)
setCornerRadius(cornerRadius)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment