TextView控件中的html语句中添加文字和图片
1、创建添加png/jpg必要的类
public class ImageGetterUtils {
public static MyImageGetter getImageGetter ( Context context, TextView textView) {
MyImageGetter myImageGetter = new MyImageGetter ( context, textView) ;
return myImageGetter;
}
public static class MyImageGetter implements Html. ImageGetter {
private URLDrawable urlDrawable = null;
private TextView textView;
private Context context;
public MyImageGetter ( Context context, TextView textView) {
this. textView = textView;
this. context = context;
}
@Override
public Drawable getDrawable ( final String source) {
urlDrawable = new URLDrawable ( ) ;
Glide. with ( context) . asBitmap ( ) . load ( source) . into ( new SimpleTarget< Bitmap> ( ) {
@Override
public void onResourceReady ( @NonNull Bitmap resource, @Nullable Transition< ? super Bitmap> transition) {
urlDrawable. bitmap = changeBitmapSize ( resource) ;
urlDrawable. setBounds ( 0 , 0 , changeBitmapSize ( resource) . getWidth ( ) , changeBitmapSize ( resource) . getHeight ( ) ) ;
textView. invalidate ( ) ;
textView. setText ( textView. getText ( ) ) ;
}
} ) ;
return urlDrawable;
}
public class URLDrawable extends BitmapDrawable {
public Bitmap bitmap;
@Override
public void draw ( Canvas canvas) {
super. draw ( canvas) ;
if ( bitmap != null) {
canvas. drawBitmap ( bitmap, 0 , 0 , getPaint ( ) ) ;
}
}
}
private Bitmap changeBitmapSize ( Bitmap bitmap) {
int width = bitmap. getWidth ( ) ;
int height = bitmap. getHeight ( ) ;
Log. e ( "width" , "width:" + width) ;
Log. e ( "height" , "height:" + height) ;
int newWidth = width;
int newHeight = height;
float scaleWidth = ( ( float ) newWidth) / width;
float scaleHeight = ( ( float ) newHeight) / height;
Matrix matrix = new Matrix ( ) ;
matrix. postScale ( scaleWidth, scaleHeight) ;
bitmap = Bitmap. createBitmap ( bitmap, 0 , 0 , width, height, matrix, true) ;
bitmap. getWidth ( ) ;
bitmap. getHeight ( ) ;
Log. e ( "newWidth" , "newWidth" + bitmap. getWidth ( ) ) ;
Log. e ( "newHeight" , "newHeight" + bitmap. getHeight ( ) ) ;
return bitmap;
}
}
}
2、textView控件调用
textview. setText ( Html. fromHtml ( content, new ImageGetterUtils. MyImageGetter ( this, textview) , null) ) ;
END
下章整理编辑器