我正在尝试通过将点拖动到特定坐标Example来转换位图和imageview,这是绘图应用。这是最好的方法吗?我应该使用OpenGL吗?谢谢
编辑:我使用canvas.drawBitmapMesh修复了谢谢大家的帮助我真的很感激。
答案 0 :(得分:1)
你可以尝试像这样创建第二个可变位图
Bitmap originalBitmap;
Bitmap b = Bitmap.createBitmap(originalBitmap.getWidth(), originalBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b)
然后,您可以在应用转换的新位图之上绘制原始位图。有关详细信息,请参阅Canvas API。
例如,使用以下方法:
c.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)
<强>更新强>
关于Matrix的使用,这只是一个猜测,你可以尝试方法mapPoints(float [] src,float [] dest)。我还在Google上进行了快速搜索,并找到了web page的示例。看看。
更新2
达丹能够通过以下方法实现目标:drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint);
方法说明:
通过网格绘制位图,网格顶点均匀 分布在位图上。有meshWidth + 1个顶点, 和meshHeight + 1个顶点向下。访问verts数组 行主要顺序,以便第一个meshWidth + 1个顶点 从左到右分布在位图的顶部。更多 此方法的一般版本是drawVertices()。