RichTextView.java 文件源码

java
阅读 36 收藏 0 点赞 0 评论 0

项目:LiteReader 作者:
@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;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号