ImageAdapterを持つギャラリーを使用して、イメージを自分のリソースから取り出すImageViewsをロードしています。私の問題は、私のアダプタのgetView()メソッドに渡されるconvertViewは常にnullです。つまり、getView()が呼び出されるたびに新しいImageViewが作成されます。これは、GCが常に作成され、ImageViewの使用されていないこれらのすべてを取り除くためにGCが絶え間なく実行されているため、恐ろしい事前成績につながります。ギャラリーImageAdapter convertViewは常にnullです
これは明らかに既知のバグです。Gallery's view cache is broken; never converts views.です。
私の二つの好ましい解決策は、どちらか1.アダプタ自体のビューのキャッシュを処理し、それらを適切に再使用するために必要なすべてのロジックの世話をしています。 または2.ギャラリーウィジェットの独自のコピーを含めて、リサイクルされたビューを適切に返すように修正してください。
私はオプション1を実装し始めましたが、その操作の背後にあるすべてのロジックをどうやって作成するのか正確にはわかりません。私はオプション2がもっと簡単かもしれないと考えるようになっています。
私はここにギャラリーウィジェットのコードを見つけた:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/widget/Gallery.java
私は完全にそれを理解していないが、私はそれがライン745マイ(上
child = mAdapter.getView(position, null, this);
を呼び出していることがわかります暗闇の中で撮影)これが問題の根源だと推測します。
誰もがこのバグを経験していますか?または、リサイクラーの状況が正しく機能するようにこのウィジェットを微調整できるようにするために、誰かが正しい方向に私を向けることができますか?あるいは、私が見落としている可能性がある代替オプションを提案してください。
EDIT:私が今までに見つけた最良の解決策は、EcoGalleryという実装でした。私はそれを参照できる唯一の場所online anymore is here。それを機能させるには、そこから各チャンクをプロジェクト内の正しい場所に配置する必要があります。
私はそれを助けるhttp://stackoverflow.com/questions/10769989/how-do-i-get-the-selected-item-from-a-gridview-with-imageadapter-android –