【发布时间】:2017-09-27 14:59:35
【问题描述】:
注意:是的,我知道在 Android 中还有其他实现按钮的方法,但这只是演示我的问题的一个示例(实际的按钮要复杂得多)。所以请不要回复为Android中的按钮提供其他解决方案,我正在寻找PaintCode的解决方案......
多年来,我一直在使用 PaintCode 在 iOS 中绘制自定义按钮,它运行良好。我想对 android 做同样的事情并遇到以下问题:
- 在 PaintCode 中,我绘制了一个按钮,该按钮基本上是一个半径为 20 点的圆角矩形。
- 我在周围画了一个框架,然后使用弹簧设置正确的调整大小行为(见屏幕截图)。
- 结果是,无论按钮的大小(= 框架)如何,边角都将始终采用 20 点的圆角。基本上是一个可调整大小的按钮。
这在 iOS 上运行良好,但在 android 上,半径是 20 像素,而不是点,导致半径从远到小(现在使用高分辨率设备)。
或者一般来说,我在 PaintCode 中使用 PaintCode 生成的 draw 方法绘制的所有绘图都很小。
生成的绘图代码似乎没有考虑设备的比例(就像在 iOS 上一样)。
查看https://www.paintcodeapp.com/documentation/android 部分“缩放”PaintCode 建议使用 android 中的密度度量来执行缩放。 这确实有效,但使生成的绘图变得模糊,我想这是因为我们正在以较低的分辨率绘图,因为缩放。所以它不是一个可行的解决方案。
class Button1 @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : Button(context, attrs, defStyleAttr) {
var frame = RectF()
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
val displayDensity = resources.displayMetrics.density
canvas?.scale(displayDensity, displayDensity)
frame.set(0f,0f,width.toFloat()/displayDensity,height.toFloat()/displayDensity)
StyleKitName.drawButton1(canvas, frame)
}
}
有解决这个问题的建议吗?这是 PaintCode 中的错误吗?
【问题讨论】:
标签: paintcode