私が持っているもの
アクティビティに「画像ダイアログを開く」があります。この「ダイアログ」には、フォルダと互換性のある画像のみが表示されます。このために、画像とテキストを含む行で埋めるグリッドビューのあるレイヤーがあります。
テキストはファイル名用で、画像は画像のプレビュー用です。
私の問題
私が見ているフォルダにたくさんの画像がない場合、ダイアログはうまく機能します。私はSIIに取り組んでおり、カメラアルバム(8Mpxの写真)を開こうとすると、新しい行が再描画されるたびに、コードが非常に遅くなります。
私のコード
この部分を削除するとすべて正常に機能するため、主な問題はプレビュー画像の作成にあると思います。画像については、私は持っています:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View grid;
if(convertView==null){
grid = new View(mContext);
LayoutInflater inflater=getLayoutInflater();
grid=inflater.inflate(R.layout.row, parent, false);
}else{
grid = (View)convertView;
}
ImageView icon = (ImageView)grid.findViewById(R.id.file_image);
TextView label = (TextView)grid.findViewById(R.id.file_text);
label.setText(item.get(position));
if (item.get(position).equals("/")){
icon.setImageResource(R.drawable.folderupup);
}else if (item.get(position).endsWith("../")) {
icon.setImageResource(R.drawable.folderup);
}else if (item.get(position).endsWith("/")) {
icon.setImageResource(R.drawable.folder);
}else{
Bitmap b = BitmapFactory.decodeFile(path.get(position));
Bitmap b2 = Bitmap.createScaledBitmap(b, 55, 55, false);
icon.setImageBitmap(b2);
}
return grid;
}
}