安卓是否有可能在屏幕方向改变时动态调整画布的宽度和高度?

5

我在画布上使用了一个背景图片,并试图在设备方向改变时相应地调整其大小。有人能建议我,在Android上是否可以重新调整画布的尺寸以响应方向的变化。


1
据我所知,这是不可能的。我建议您为纵向和横向方向使用2个画布。 - neevek
谢谢Neevek,实际上我正在从URL获取背景图像并将其设置为画布,并且必须以相同的尺寸保存图像作为输出,因此正如您建议的那样,我必须为横向和纵向方向使用两个不同的URL,是否有可能从这两种方向获得相同尺寸的输出? - Vikas Panwar
1个回答

0

我认为无法调整画布的大小。如果您在画布上使用了一张覆盖整个屏幕的背景图片,那么当屏幕方向改变时,您可以按照以下方式缩放此图片:

@Override
        public void onSurfaceChanged(SurfaceHolder holder, int format,
                int width, int height) {


            // orientation change
            if (_width == width && _height == height) {
                _orient = 0;//portrait
                this.width = width;
                this.height = height;
                            this._holder=holder;
                this.bgBitmap =Bitmap.createScaledBitmap(BitmapFactory
                .decodeResource(res, R.drawable.bg), (_holder
                        .getSurfaceFrame().width()), _holder.getSurfaceFrame()
                        .height(), false);

            } else {
                _orient = 1;//landscape
                this.width = width;
                this.height = height;
                his.bgBitmap =Bitmap.createScaledBitmap(BitmapFactory
                .decodeResource(res, R.drawable.bg), (_holder
                        .getSurfaceFrame().width()), _holder.getSurfaceFrame()
                        .height(), false);

            }

            super.onSurfaceChanged(holder, format, width, height);
        }

这个方法是我代码中扩展引擎类的一部分。由于我的代码非常冗长,因此我仅在此处发布相关部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接