1

ローカルのJavaScript(「asset」フォルダー内)からデータが入力されたWebViewがあります。WebViewの読み込みには数秒かかるので、デバイスの回転を維持したいと思います。configChangesには他の付随的な影響があるため、使用したくありません。

最善のアプローチは、WebViewから画像を作成し、回転時にWebViewの代わりに画像をロードすることであるように思われますが、その方法がわかりません。

これが私が試したコードです:

Canvas canvas = new Canvas();
pictureNightDay.draw(canvas);
Bitmap b = Bitmap.createBitmap(pictureNightDay.getWidth(), pictureNightDay.getHeight(),Config.ARGB_8888);
myWebViewNightDay.draw(new Canvas(b));

ただし、これは空白のビューのみを表示します。

「pictureNightDay」は以前に保存されました

pictureNightDay = myWebViewNightDay.capturePicture();

ありがとう、さようならマウリツィオ

4

2 に答える 2

1

開発者ドキュメントから(「Cookieとウィンドウ管理」の下):

アクティビティの標準的な動作は、デバイスの向きやその他の構成が変更されたときに破棄され、再作成されます。これにより、WebViewは現在のページをリロードします。それが必要ない場合は、向きとkeyboardHiddenの変更を処理するようにアクティビティを設定してから、WebViewをそのままにしておくことができます。必要に応じて、自動的に向きを変えます。実行時の構成変更の処理方法の詳細については、「実行時の変更の処理」を参照してください。

基本的に、これらの変更中に保持したいものをシステムに指示すると、システムはそれを保持します。これは素晴らしいシステムだと言わざるを得ません。何か難しいことをしなければならないと思うたびに、少し調べてみると、システムにそれをやってもらう方法が見つかります。

于 2012-05-29T08:54:49.843 に答える
0

ついに私は次の答えを思いつきました:私は2つのビューを使用しました。1つはWebView、もう1つはImageView(最初は非表示)です。

WebViewがロードされたときに画像を保存します。

pictureNightDay = myWebViewNightDay.capturePicture();

(pictureNightDayは静的フィールドです)。

次に、回転時にpictureNightDayがnullでないかどうかを確認し、ImageViewとWebViewの可視性を交換します。

ImageView im = (ImageView) l.findViewById(R.id.tripreport_tipology_imagenightday);
im.setImageDrawable(new PictureDrawable(pictureNightDay));
im.setVisibility(View.VISIBILE);
myWebViewNightDay.setVisibility(View.GONE);
于 2012-05-29T09:24:57.460 に答える