Android对象层

Android对象层,android,Android,我目前正在开发一个应用程序,人们可以在SurfaceView中放置对象——图像等,他们可以调整它的大小等等。现在我有了一个用例,有人可以把它放在一个像框架一样的图像中——比如说它是一个中心透明的正方形图像。现在,他们可以设置一个可以进入该帧的图像,并将其限制在该帧的边界内,然后他们可以根据需要调整其大小。有人做过这样的实现吗?请注意,这不同于当一个帧是全屏时,这是很容易做到的。请参见下面的示例: 绿色是SurfaceView的主要背景区域,他添加了栗色/红色边框,现在他将图片设置为进入边框(这

我目前正在开发一个应用程序,人们可以在SurfaceView中放置对象——图像等,他们可以调整它的大小等等。现在我有了一个用例,有人可以把它放在一个像框架一样的图像中——比如说它是一个中心透明的正方形图像。现在,他们可以设置一个可以进入该帧的图像,并将其限制在该帧的边界内,然后他们可以根据需要调整其大小。有人做过这样的实现吗?请注意,这不同于当一个帧是全屏时,这是很容易做到的。请参见下面的示例:

绿色是SurfaceView的主要背景区域,他添加了栗色/红色边框,现在他将图片设置为进入边框(这都在同一个曲面内)。这一次的主要区别是,当他调整/移动图像的大小时,它应该以红色边框为边界(他不会看到它像下图那样在外部重叠)。任何人都有在Android上实现这一点的经验

使用画布的方法。在绘制要加框的图像之前,可以为其提供一个指定帧的矩形。像这样的方法应该会奏效:

首先,在移动帧时,需要具有相应的:

在您的
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
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