我正在为Android中的应用编码,我遇到了以下问题。
我必须覆盖内置函数Fragment getItem(int position)
以返回图像的位图,但由于图像非常大,因此需要花费大量时间来加载。因此,UI的响应速度有点慢。
要解决这个问题,我认为可以像下面的代码一样解决它。它基本上会立即返回一个空白图像,当加载真实图像时,它会返回正确的图像。
@Override
public Fragment getItem(final int position) {
pid = fork(); //NOT POSSIBLE / ERROR
if (!pid)
return (code for empty image);
return new ScreenSlidePageFragment(files[position].getAbsolutePath(), width, height);
}
但是,我不知道Java中与fork()
类似的函数。
能否帮我解决这个问题,谢谢
答案 0 :(得分:1)
在Java中,您可以使用 Thread 类。但是,如果您正在为Android开发,可以考虑使用 AsyncTask 并参考官方Android开发人员培训
答案 1 :(得分:0)
您可以在Java中打开Threads,而不是分支新进程。有关如何执行此操作的详细信息,请参阅this question。
答案 2 :(得分:0)
您可以定义AsynTask,并在实现其功能时执行类似
的操作public class imageLoader extends AsyncTask<Void, Void, Void>{
protected preExecute(){
//load the blank image
//this function is executed on the UI thread
}
protected doInBackground(){
//load the real one
//that one is not executed on the UI thread
}
protected postExecute(){
//set the new image
//this one is executed on the UI thread
}
}