android - 以相同的笔划大小绘制线条会产生不同粗细的线条
问题描述
我有以下自定义视图,它在另一条下方绘制两条线:
class GridView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
private val linePaint = Paint()
init {
linePaint.color = Color.DKGRAY
linePaint.style = Paint.Style.STROKE
linePaint.strokeWidth = 50f //resources.getDimension(R.dimen.line_width)
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
canvas.drawLine(0f, 0f, width.toFloat(), 0f, linePaint)
canvas.drawLine(0f, 200f, width.toFloat(), 200f, linePaint)
}
}
视图具有固定大小:
<com.vgrec.playground.tictactoe.GridView
android:layout_width="300dp"
android:layout_height="300dp" />
结果如下所示:
有什么想法为什么第二行比第一行粗,尽管它们都使用相同的笔划大小50f
?
解决方案
推荐阅读
- java - 无法解决 ArithmeticException?/ 零?
- r - gghistogram + gganimate中的鬼条
- date - 将日期格式 yywwd 转换为 dd-mm-yy
- c++ - 关于在 STL 列表和函数对象 C++ 中使用 while 循环而不是 for 的问题
- javascript - 角度(表单数组)值更改不起作用
- opencv - 使用opencv将浮点和双精度值保存或读取到yaml文件时值发生变化
- android - 转换数组列表
到 MutableLiveData > 在科特林 - ios - Do i need IOS developer account for React native ios developing
- c++ - 使用 STL 向量的自定义向量容器
- java - 发送不带“根”的 JSON 对象