2

データの取得開始時にデフォルトの画像を設定し、取得が終了すると画像をロードするカスタムImageSpanを構築したいと思います。

コードの例:

public class CustomImageSpan extends ImageSpan {

  private Drawable mDrawable;

   @Override
  public Drawable getDrawable() {
    if (mDrawable == null) {

      mDrawable = defaultDrawable;
      Futures.addCallback(
          FetchImage.submit(
              new FutureCallback<Image>() {
            @Override
            public void onSuccess(Image result) {
              Bitmap bitmap = result.getBitmap();
              mDrawable = new BitmapDrawable(mContext.getResources(), bitmap);

             //!Rerender span with new bitmap.
            }
          }, mExecutor);

     }

    return mDrawable;
  }

ロードが終了し、デフォルトではなく新しいビットマップを取得する時期であることをスパンに通知するにはどうすればよいですか?

4

1 に答える 1

-1

現在のタスクが完了したら、ハンドラーを使用して次のタスクに進むことができます

Handler xHandler=new Handler(){
        @Override
        public void handleMessage(Message message){
            switch (message.what){
            case SOME_OPERATION:
                getImage(); //the method you are using
                break;
            }
        }
     }; 

以下のように別のスレッドでハンドラを実行します

@Override
        public void run() {
            xHandler.sendMessage(Message.obtain(xHandler, SOME_OPERATION));
        }
于 2013-03-19T06:11:34.017 に答える