android - 在 ImageSpan 中延迟加载图像

标签 android spannable

我想构建自定义 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;
  }

如何通知 span 加载已经完成,是时候获取新位图而不是默认位图了?

最佳答案

您可以尝试使用处理程序在当前任务完成后继续执行下一个任务

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

关于android - 在 ImageSpan 中延迟加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15492559/

相关文章:

android - MPAndroidChart - 是否可以控制图表元素的 z-index?

android - 自定义下载通知

android - TrafficStats 特定应用-特定网络接口(interface)

java - Android:尝试使用 Spannable 更改字符串的颜色(部分工作)

android - 如何检测android中的顺时针手势

javascript - 用于移动设备的 HTML5、JS 游戏引擎

android - SPAN_POINT_MARK 和 SPAN_MARK_POINT 有什么区别?

java - 使用 Spannable 自定义大小的斜体字体

android - 在 android 中处理 SpannableStringBuilder 图像