5

キャンバスで背景画像を使用し、デバイスの向きが変更されたときにそれに応じてサイズを変更しようとしましたが、Androidで向きの変更時にキャンバスのサイズを変更できることを誰でも提案できますか?

4

1 に答える 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);
        }

このメソッドは、私のコードでEngineを拡張するクラスの一部です。私のコードは非常に長いので、関連する部分だけをここに投稿します。

于 2012-10-31T11:39:23.517 に答える