Ell*_*tus 15 graphics android view android-canvas
我试图找出在视图上给定点获取像素颜色值的最佳方法.我有三种方式写入视图:
我用View.setBackgroundDrawable(...)设置了一个背景图像.
我使用Canvas.drawText(...),Canvas.drawLine(...)等将文本,绘制线等写入支持Bitmap的Canvas.
我通过将子对象(sprite)写入传递给View的onDraw(Canvas画布)方法的Canvas来绘制子对象(精灵).
这是我的类中的onDraw()方法,它扩展了View:
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
获得像素的颜色值以考虑所有这些来源的最佳方法是什么?
jkh*_*uw1 29
如何将视图加载到位图(在完成所有绘图/精灵等之后的某个时刻),然后从位图获取像素颜色?
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
Run Code Online (Sandbox Code Playgroud)
那么在结果上使用getPixel(x,y)?
http://developer.android.com/reference/android/graphics/Bitmap.html#getPixel%28int,%20int%29
| 归档时间: |
|
| 查看次数: |
15906 次 |
| 最近记录: |