我正在尝试找出在给定位置获取 View 上像素颜色值的最佳方法。我有三种在 View 上进行写入的方式:
- 使用 View.setBackgroundDrawable(...) 设置背景图像。
- 使用 基于位图的 Canvas 的 Canvas.drawText(...)、Canvas.drawLine(...) 等函数进行文本编写,绘制线条等操作。
- 通过让子对象(精灵)将内容写入传递给View的 onDraw(Canvas canvas) 方法来实现。
@Override
public void onDraw(Canvas canvas) {
// 1. Redraw the background image.
super.onDraw(canvas);
// 2. Redraw any text, lines, etc.
canvas.drawBitmap(bitmap, 0, 0, null);
// 3. Redraw the sprites.
for (Sprite sprite : sprites) {
sprite.onDraw(canvas);
}
}
如何最好地获取像素的颜色值,以考虑所有来源?
getLayoutParams
中的值而不是v.getWidth()和v.getHeight()的理由? - Simon Forsberg