我正在开发一个应用程序,人们可以在SurfaceView中放置对象 - 图像等,他们可以调整它的大小等等。现在我有一个用例可以放置像图像一样的框架 - 让我们说它是一个正方形图像,中心是透明的。现在,他们可以设置一个可以进入该帧的图像,并且仅限于该帧的边界,并且从那里可以按原样调整它的大小。有没有像这样的实现?请注意,这与帧全屏时不同,这很容易做到。请参阅下面的示例:
绿色是SurfaceView的主要背景区域,他添加了栗色/红色框架,现在他将图片设置在框架中(这都在同一个表面内)。这次的主要区别在于,当他在这里调整图像大小/移动图像时,它应该被红框限制(他不会看到它在外面重叠,如下图所示)。任何人都有在Android上如何做到这一点的经验。
答案 0 :(得分:0)
使用Canvas的clipRect()
方法。在绘制要构图的图像之前,可以为其提供指定框架的矩形。这样的事情应该有效:
首先移动框架时,您需要有相应的Rect
:
myRect.set(frameleft, frametop, frameright, framebottom);
在你的onDraw()
中,你用这个矩形剪辑图片:
canvas.save(Canvas.CLIP_SAVE_FLAG);
canvas.clipRect(pictureRect);
canvas.drawBitmap(/*your drawing parameters for the image*/);
canvas.restore(); //Restore to drawing the entire canvas