0

我有一个Panel类,它扩展了SurfaceView. 面板填满了我的整个活动。在面板内,我画了一个球 - 位图(和其他一些东西(线条/正方形))。

我添加了一些伪深度。像 2.5 D 的东西,不是真正的 3D,但有点像。但是现在我面临一个问题,当球进入深度时,我不知道如何调整它的大小。因为球不断地来回移动(左/右,上/下)。

我不知道在哪里阅读它,但我认为如果我将 Bitmap 添加到 an ImageView,这将解决我所有的问题。

我的第一个问题,这甚至可以解决我的问题吗?如果没有,我还能如何解决它。

我的第二个问题是,如何Imageview在 a 上添加一个SurfaceView

我在这里找到了一些很好的提示:将 ImageView 实现到 SurfaceView 但它只说明要做什么,而不是如何去做。因为在我的活动中什么都没有发生。一切都发生在我的Panel.

4

1 回答 1

0

我认为我的一个问题的答案可能会对您有所帮助:Unable to draw on top of a custom SurfaceView class。不可能将 ImageView 添加到 SurfaceView 中,因为 SurfaceView 不扩展 ViewGroup 类,但正如该答案所示,在 SurfaceView 上绘制很简单。

在那个问题中,我有一个名为 DrawOnTop 的自定义视图,它直接从 View 继承,并且我在该视图的画布上绘制了调整大小和旋转的位图,没有任何问题。我的猜测是你将能够对你的球对象做同样的事情。我使用的代码如下:

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap);
int bitmapOrg_width = bitmapOrg.getWidth();
int bitmapOrg_height = bitmapOrg.getHeight();

float bitmapScaleFactor = 1.5;   // to create a resized bitmap 50% bigger
float angle = 90;                // to rotate by 90 degrees

Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(bitmapScaleFactor, bitmapScaleFactor);
// rotate the Bitmap
matrix.postRotate(angle);
// create the resized bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, bitmapOrg_width, bitmapOrg_height, matrix, true);
canvas.drawBitmap(resizedBitmap, left, top, null);
于 2013-03-27T17:08:39.783 回答