0

私のアプリでは、( を使用してview.getDrawingCache) 現在の画面のスクリーンショットを撮り、インテントを使用してビットマップとして別のアクティビティに送信します。

Galaxy Note 1、HTC one v、および Motorolla Xoom mz 604 タブレット (10.1 インチ) でテストしました。最初の 2 つのデバイスでは、コードは正常に動作します。しかし、Xoom タブレットでは、コードは動作しません。タブレットは待機を開始します。長い間、アプリがクラッシュします。

この背後にある理由は何でしょうか?

4

2 に答える 2

1

私は問題が原因でゲストゲストOutOfMemoryError: bitmap size exceeds VM budget

この問題を解決するには、ビットマップをインテントに送信するのではなく、1 つの静的変数を作成してから 2 番目のアクティビティでアクセスすることを試みることができます。

また

内部メモリにビットマップを保存し、2 番目のアクティビティでそのビットマップのパスを送信できます。

より多くの情報を入手して、logcat を投稿してください。

于 2013-02-05T15:09:00.010 に答える
1

画面の解像度が高くなる可能性が高いため、スクリーンショットのビットマップはタブレットでは非常に大きくなる可能性があります。問題はおそらくメモリの問題です。これを克服するには、ビットマップを一時ファイルに書き込み、そのファイルへのパスをアクティビティに送信します。

または、起動しているアクティビティが同じアプリケーション内にある場合は、グローバル変数を使用してビットマップを保持できます。

于 2013-02-05T15:10:09.617 に答える