0

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);
    }

でも、fork()Javaに似た機能は知りません。この問題について私を助けてくれませんか、ありがとう

4

3 に答える 3

1

Javaでは、そのためのThreadクラスを使用します。ただし、Android向けに開発している場合はAsyncTask、公式のAndroid開発者トレーニングを使用して参照することを検討してください。

UIスレッドからのビットマップの処理

于 2013-03-07T11:31:31.137 に答える
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
 }
}
于 2013-03-07T11:28:49.697 に答える
0

新しいプロセスをフォークする代わりに、Javaではこのような場合にスレッドを開きます。その方法の詳細については、この質問を参照してください。

于 2013-03-07T11:17:37.557 に答える