@Override
public Drawable getDrawable(String source) {
final RichTextView tv = weakRef.get();
final LevelListDrawable mDrawable = new LevelListDrawable();
Glide.with(tv.getContext()).load(source).asBitmap().placeholder(R.drawable.ic_placeholder).into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if (width == 0) {
tv.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
width = tv.getWidth();
}
BitmapDrawable d = new BitmapDrawable(resource);
mDrawable.addLevel(1, 1, d);
int imageWidth;
int imageHeight;
//小图只需略微扩大,大图则宽度铺满
if (resource.getHeight() < 50 || resource.getWidth() < 50) {
imageWidth = (int) (resource.getWidth() * zoomFactor);
imageHeight = (int) (resource.getHeight() * zoomFactor);
} else {
imageWidth = width;
double ratio = (double) resource.getHeight() / (double) resource.getWidth();
imageHeight = (int) (ratio * width);
}
mDrawable.setBounds(0, 0, imageWidth, imageHeight);
mDrawable.setLevel(1);
tv.invalidate();
tv.setText(tv.getText());
}
});
return mDrawable;
}
RichTextView.java 文件源码
java
阅读 36
收藏 0
点赞 0
评论 0
项目:LiteReader
作者:
评论列表
文章目录