リストビューをクリックすると、その場所のイメージが外部メモリに保存され、ファイルパス文字列が表示されますデフォルトギャラリの画像。唯一の問題は、それが真剣に時間がかかることです(私は雷鳴に10秒以上話しています)。私が試したhaved何デフォルトのギャラリーでキャッシュされたビットマップをより速く開く方法
:
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
if(position>0){
Bitmap bmp =adapter.getBitmap(adapter.getData(position-1));
if(bmp!=null){
//String path = context.getCacheDir().getAbsolutePath() + "/view.png";
//File f = new File(context.getCacheDir().getAbsolutePath(),"MemeCache");
//if(!f.exists())
// f.mkdirs();
String path = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/view.png";
Toast.makeText(context, "opening in gallery", Toast.LENGTH_SHORT).show();
File file = new File(path);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
bmp.compress(CompressFormat.PNG, 100, fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path)), "image/png");
//intent.setDataAndType(Uri.fromFile(f), "image/png");
activity.startActivity(intent);
}else{
Toast.makeText(context, arg0.getItemAtPosition(position).toString() +"is HaAAACkSS!!!!", Toast.LENGTH_SHORT).show();
}
}
}
});
画像の最初の場所はどこですか?ギャラリーを元の画像にパスしたり、SDカードに保存したりすることは可能ですか? – Craigy
投稿した機能のどの部分が実行に時間がかかりますか?デバッガを使用して、ステップオーバーに長い時間がかかる行を確認してください。 –