[英]Snackbar not showing instantly
我正在嘗試單擊ImageView時保存圖像。 因為保存需要一些時間,所以我想使用某種指示器,表明該應用程序正在運行。 我嘗試使用Snackbar。 我的代碼如下所示:
File image = new File(directory, "image.png");
if(!image.exists()){
Snackbar bar = Snackbar.make(getActivity().findViewById(R.id.some_layout), "snackText", Snackbar.LENGTH_INDEFINITE);
bar.show();
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
bar.dismiss();
}
該ImageView的public void onClick(View view)
內部的所有內容。 問題是,Snackbar僅在保存圖像后顯示。 我試圖用invalidate()強制更新UI,並嘗試了不啟動具有相同結果的新線程的情況。 任何想法都將不勝感激!
請勿在此處使用快餐欄,例如:if(!image.exists()){
final ProgressDialog progressDialog =ProgressDialog.show(this, "","Please Wait...", true);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.dismiss();
}
});
}
});
t.start();
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.