アプリを作成するために、Android用のチタン製アクセラレーターを使用しています。
私のメイン画面には、一度に 15 ページの行であるリストでいっぱいの tableView があります。したがって、15 行目までスクロールすると、さらに 15 行がテーブルに追加されます。通常、画面の高さに応じて、画面には一度に 3 ~ 10 行が表示されます (samsung mini と nexus 7 の場合)。
各行には、複数の子ビューと imageView を含むビューが含まれます。これにより、リストを上下にスクロールするときにパフォーマンスが非常に低下します。これを解決するために、行に追加された親ビューを画像に変更しました。これにより、スクロール時のパフォーマンスが大幅に向上しました。
ここに一般的なスニペットがあります
//Turn the entire view "post_view" into an image. post_view consists of many child views
var blob = post_view.toImage(null, true);
//Create the Image view of entire post_view, the parent of all child views
var tempImage = Ti.UI.createImageView({
height : 'auto',
width : 'auto',
top : 0,
zindex : 3,
image : blob
});
/* adding the ImageView created from the parent view which all child ies have been added to*/
row.add(tempImage);
/*This is the array of rows to be added to the tableView */
tabData[i] = row;
........
tableView.appendRow(tabData);
ただし、特に大画面でスクロールするとアプリがクラッシュし、DDMS を使用すると OutOfMemory エラーとして表示されます。残念ながら、現在はより大きなデバイスにアクセスできないため、特定のエラーを投稿することはできません。また、ビュー全体を画像に変更する方法を使用しない場合にもメモリエラーが発生しますが、DDMS のエラー自体の詳細は少なくなります。
そのため、toImage メソッドに関連しているのか、javascript で適切にメモリを解放していないのか、それがチタンまたは Java の問題なのか、それとも何なのかはわかりません。
どなたでもアイデアを。これは、数週間修正しようとしている問題です。特定のJavaエラーが手元にあればいいのにと思います。しかし、彼らは主に OutOfMemory を参照しています