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