下午好! 告诉我如何覆盖图像(ImageView),锚定到眼睛? 我想跟踪使用Google Vision API。 也许有一个如何戴上帽子的例子?
加。 (2016年Jule 2016)
使用以下代码:
imageView.setX(mPosition.x);
imageView.setY(mPosition.y);
postInvalidate();
不严格锚定(蓝色方块),你可以在与照片距离不同的截图中看到它:
请告诉我为什么会这样?
答案 0 :(得分:1)
Google Mobile Vision API GitHub示例中有一个示例,说明了如何根据眼睛的位置绘制眼球图形:https://github.com/googlesamples/android-vision/tree/master/visionSamples/googly-eyes
为了覆盖图像而不是绘制图元(如示例所示),您可以将图像加载到位图
InputStream inputStream = contentResolver.openInputStream(imageUri);
Bitmap mBitmap = BitmapFactory.decodeStream(inputStream, null, options);
然后使用canvas.drawBitmap
canvas.drawBitmap(mBitmap, eyePosition.x, eyePosition.y, mPaint);
如果您与ImageView结婚,您可以将图像加载到其中,然后在跟踪器更新时直接更新该位置
imageView.setX(mPosition.x);
imageView.setY(mPosition.y);
postInvalidate();
确保在创建View的线程上发生这些set调用,否则它们将抛出异常。