Android 在特定坐标处变换位图或ImageView

Android 在特定坐标处变换位图或ImageView,android,bitmap,imageview,coordinates,transform,Android,Bitmap,Imageview,Coordinates,Transform,我试图通过将点拖动到特定坐标来转换位图和imageview这是一个绘图应用程序。哪种方法最好?我应该使用OpenGL吗?多谢各位 编辑:我使用canvas.drawBitmapMesh修复了此问题。谢谢大家的帮助,我非常感谢。您可以尝试创建第二个这样的可变位图 Bitmap originalBitmap; Bitmap b = Bitmap.createBitmap(originalBitmap.getWidth(), originalBitmap.getHeight(), Bitmap.Con

我试图通过将点拖动到特定坐标来转换位图和imageview这是一个绘图应用程序。哪种方法最好?我应该使用OpenGL吗?多谢各位


编辑:我使用canvas.drawBitmapMesh修复了此问题。谢谢大家的帮助,我非常感谢。

您可以尝试创建第二个这样的可变位图

Bitmap originalBitmap;
Bitmap b = Bitmap.createBitmap(originalBitmap.getWidth(), originalBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b)
然后,您可以在应用变换的新位图上绘制原始位图。有关更多详细信息,请参见API

例如,使用以下方法:

c.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)
drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint);
更新

关于矩阵的使用,这只是一个猜测,您可以尝试方法mapPoints(float[]src,float[]dest)。我还在谷歌上做了一个快速搜索,找到了一些例子。看一看

更新2

Dardan通过以下方法实现了他的目标:

c.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)
drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint);
方法说明:

通过网格绘制位图,其中网格顶点均匀分布 分布在位图中。有网格宽度+1个顶点, 和meshHeight+1顶点向下。在中访问verts数组 行主顺序,以便第一个meshWidth+1顶点为 从左到右分布在位图顶部。更多 此方法的常规版本为drawVertices()


简单的画布。drawBitmap(位图、矩阵、画图)就可以了,你只需要计算正确的矩阵使用哪种矩阵方法?我在哪里可以阅读有关本期的更多信息仔细阅读矩阵文档?是的,谢谢您的帮助,我现在就来试试。:)通过使用canvas.drawBitmapMesh修复