- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过创建一个 TextDrawable 然后使用 compoundDrawable
设置它来为我的 TextInputEditText 添加一个后缀。一切都进行得相当顺利,除了可绘制对象被剪裁到组件右侧之外。是什么原因造成的?到目前为止,我尝试过更改字体大小,但这没有任何区别...是可绘制对象太宽还是什么?
字符串是 "kr/månad"
,如您所见,它被剪裁了..
XML
<android.support.design.widget.TextInputLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text_input_layout"
style="@style/TextInputLayoutStyle"
android:theme="@style/TextInputLayoutTheme">
<android.support.design.widget.TextInputEditText
android:id="@+id/text_input_edit_text"
style="@style/TextInputEditTextStyle" />
</android.support.design.widget.TextInputLayout>
组件代码
textInputEditText.setCompoundDrawables(null, null, TextDrawable(unitText), null)
文本可绘制
class TextDrawable(private val text: String?) : Drawable() {
private val paint: Paint
init {
paint = Paint()
paint.color = Color.BLACK
paint.textSize = 44f
paint.isAntiAlias = true
paint.isFakeBoldText = true
paint.typeface = Typeface.create("sans-serif-light", Typeface.NORMAL)
paint.style = Paint.Style.FILL
paint.textAlign = Paint.Align.CENTER
}
override fun draw(canvas: Canvas) {
text?.let { text ->
canvas.drawText(text, 0f, 0f, paint)
}
}
override fun setAlpha(alpha: Int) {
paint.alpha = alpha
}
override fun setColorFilter(cf: ColorFilter?) {
paint.colorFilter = cf
}
override fun getOpacity(): Int {
return PixelFormat.TRANSLUCENT
}
}
最佳答案
试试这段代码:
class TextDrawable(private val text: String?) : Drawable() {
private val paint = Paint().apply {
color = Color.BLACK
textSize = 44f
isAntiAlias = true
isFakeBoldText = true
typeface = Typeface.create("sans-serif-light", Typeface.NORMAL)
style = Paint.Style.FILL
setBounds(0, 0, measureText(text).toInt(), 0)
}
override fun draw(canvas: Canvas) {
text?.let { text ->
canvas.drawText(text, 0f, 0f, paint)
}
}
override fun setAlpha(alpha: Int) {
paint.alpha = alpha
}
override fun setColorFilter(cf: ColorFilter?) {
paint.colorFilter = cf
}
override fun getOpacity(): Int {
return PixelFormat.TRANSLUCENT
}
}
区别在于两行。我删除了这个
paint.textAlign = Paint.Align.CENTER
并添加了这个:
setBounds(0, 0, measureText(text).toInt(), 0)
关于android - TextInputEditText - CompoundDrawable 未居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54361768/
我试图通过创建一个 TextDrawable 然后使用 compoundDrawable 设置它来为我的 TextInputEditText 添加一个后缀。一切都进行得相当顺利,除了可绘制对象被剪裁到
我可以通过两种方式将图像设置在 TextView 的左侧或右侧: 使用 android:drawableLeft 使用线性布局并分别添加 imageview 和 textview 如果我使用 1 那么
CompoundDrawable 是一个带有图像和文本的 TextView 对吧?那么如果是两者的结合,你怎么能把文字放在图像的中心呢?或者如果文本比图像小一点,你怎么能把图像放在文本的中心?或者如果
我已经在使用选择器绘图让我的按钮根据状态改变背景。 但是,我还想更改文本颜色并与背景一起绘制左侧复合图。但是默认选择器 XML 属性不包含任何要分配的“android:textColor”或“andr
一段时间以来,我一直在尝试弄清楚如何更改 EditText 的 compoundDrawable 的色调,但没有成功。我将 EditText 用作按钮,并想像 EditText 下划线颜色一样更改可绘
我在我的 Android 应用程序中使用 SVG 作为我的 ImageView 的 src,使用 appSrc 属性以提供向后兼容性 (SDK 参见: developer.android.com/re
我是一名优秀的程序员,十分优秀!