html富文本,Html富文本解析

该代码段展示了一个实现将图片加载到TextView的类`OrImageGetter`,它利用Glide库从指定源加载Bitmap,并根据给定的宽度和高度进行缩放。`OrDrawable`类用于在TextView中绘制缩放后的图片。通过在`getDrawable`方法中设置回调,在图片加载完成后更新TextView的内容和视图。
摘要由CSDN通过智能技术生成

public class OrImageGetter implements Html.ImageGetter {

private DkDrawable mOrDrawable = null;

private TextView mTargetTextView;

private Context mContext;

private int mWidth;

private int mHeight;

public OrImageGetter(Context context, TextView targetTextView, int width, int height) {

this(context, targetTextView);

this.mWidth = width;

this.mHeight = height;

}

public DkImageGetter(Context context, TextView targetTextView) {

this.mTargetTextView = targetTextView;

this.mContext = context;

}

@Override

public Drawable getDrawable(final String source) {

mOrDrawable = new OrDrawable();

Glide.with(mContext)

.load(source)

.asBitmap()

.fitCenter()

.into(new SimpleTarget() {

@Override

public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {

Bitmap scaleBitmap = ((BitmapDrawable) mContext.getResources().getDrawable(R.drawable.test_drawable)).getBitmap();

scaleBitmap = toScaleBitmap(scaleBitmap, mWidth, mHeight);

mOrDrawable.setDkBitmap(scaleBitmap);

mOrDrawable.setBounds(0, 0, scaleBitmap.getWidth(), scaleBitmap.getHeight());

mTargetTextView.setText(mTargetTextView.getText());

mTargetTextView.invalidate();

}

});

return mOrDrawable;

}

public class OrDrawable extends BitmapDrawable {

public Bitmap mOrBitmap;

public Bitmap getOrBitmap() {

return mOrBitmap;

}

public void setOrBitmap(Bitmap mBitmap) {

this.mOrBitmap = mBitmap;在这里插入代码片

}

@Override

public void draw(Canvas canvas) {

super.draw(canvas);

if (mOrBitmap != null) {

canvas.drawBitmap(mOrBitmap, 0, 0, getPaint());

}

}

}

/* 根据给定的高宽,对位图进行缩放操作*/

public Bitmap toScaleBitmap(Bitmap bitmap, int width, int height) {

if (width == 0 && height == 0) {

return bitmap;

}

int originalWidth = bitmap.getWidth();

int originalHeight = bitmap.getHeight();

float scaleHeight = ((float) height) / originalHeight;

float scaleWidth = ((float) width) / originalWidth;

float minScale = scaleWidth;

if (scaleWidth > scaleHeight) {

minScale = scaleHeight;

}

Matrix matrix = new Matrix();

matrix.postScale(minScale, minScale);

return Bitmap.createBitmap(bitmap, 0, 0, originalWidth, originalHeight, matrix, true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中解析HTML富文本可以使用Jsoup库。Jsoup是一个开源的Java HTML解析器,可以方便地从HTML文档中提取数据。 使用Jsoup解析HTML富文本的步骤如下: 1. 导入Jsoup库:在项目中引入Jsoup库的依赖,可以通过Maven或Gradle进行引入。 2. 获取HTML文档:可以通过URL、文件或字符串等方式获取HTML文档。 3. 解析HTML文档:使用Jsoup提供的API进行解析,可以根据需要提取标签、属性、文本内容等信息。 下面是一个简单的示例代码,演示了如何使用Jsoup解析HTML富文本: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class HtmlParser { public static void main(String[] args) { String html = "<html><body><div><h1>标题</h1><p>段落</p></div></body></html>"; // 解析HTML文档 Document doc = Jsoup.parse(html); // 提取标题 Element titleElement = doc.select("h1").first(); String title = titleElement.text(); System.out.println("标题:" + title); // 提取段落 Elements paragraphElements = doc.select("p"); for (Element paragraphElement : paragraphElements) { String paragraph = paragraphElement.text(); System.out.println("段落:" + paragraph); } } } ``` 运行以上代码,输出结果为: ``` 标题:标题 段落:段落 ``` 这个示例演示了如何从HTML文档中提取标题和段落内容。你可以根据需要使用Jsoup提供的API进行更复杂的解析操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值