我的应用程序遇到了问题。我正在将一系列内部iPad应用程序从iOS移植到android,图像序列是他们设计中不可或缺的部分。它们需要标准的全屏停止,启动,暂停功能,所有这些功能都可以从ImageView的子类中正常工作。但它目前只显示在锁定的进程对话框不断出现之前通过的300个图像中的2个。
那么在没有锁定主线程的情况下设置图像/背景有“好”的方法吗?
仅供参考AnimateDrawable并不适合我需要的东西,因为它不提供暂停/恢复功能,而且我拥有的序列数量很容易达到数百个,平均只有几百帧。
答案 0 :(得分:1)
您可以使用 AsyncTask
异步加载图片只需将与图像加载相关的代码放在 doInBackground 方法中 并尝试设置进度条或进度对话框等指标 所以你将在开始加载时开始显示对话框或栏 并在完成后使用 onPostExecute 方法
中的处理程序关闭对话框示例代码:
class SomeClass extends Activity {
protected ProgressDialog pd ;
protected Handler handler = new Handler(){
@Override
public void handleMessage(int what){
if(pd.isShowing())
pd.dismiss();
}
.....
class LoadImageTask extends AsyncTask<URL, Integer, Long> {
protected void onPreExecute(Long result) {
pd = ProgressDialog.show(getContext(),"Title","Message");
}
protected Long doInBackground(URL... urls) {
//Load IMAGEs code
return totalSize;
}
protected void onPostExecute(Long result) {
//finish loadiing images
handler .sendEmptyMessage(0);
}
}
}
我希望这会对你有所帮助
答案 1 :(得分:0)
要为Muhannad的回答添加一些东西: