版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dengmengxin/article/details/38871443
/**
* @author 邓孟鑫
* 对EditText 里的img标签替换出图片
* @param context
* @param editText
*/
private static void imgTagReplaceBitmap(Context context, EditText editText) {
// 获取EditText传进来的值
String text = editText.getText().toString();
// 正则表达式,筛选标准img标签
Pattern pattern = Pattern.compile("<img src='.*?' />");
// 开始匹配
Matcher matcher = pattern.matcher(text);
// 进行处理
while (matcher.find()) {
// 匹配出来的标签
String imgTag = matcher.group();
// 取出img标签的src地址,也就是图片存在手机上的地址
Pattern p = Pattern.compile("'.*?'");
// 对匹配出来的标签在匹配一次,这一次的匹配就是将图片地址拿出来
Matcher m = p.matcher(imgTag);
//存放图片
Bitmap pic = null;
if (m.find()) {
pic = EditTextUtils.createImageThumbnail(m.group().replace("'",""));
//获取图片宽度
int imgWidth = pic.getWidth();
//图片高度
int imgHeight = pic.getHeight();
float scalew = (float) 500 / imgWidth;
float scaleh = (float) 500 / imgHeight;
Matrix mx = new Matrix();
mx.setScale(scalew, scaleh);
//对图片进行缩放
pic = Bitmap.createBitmap(pic, 0, 0, imgWidth, imgHeight, mx,
true);
String smile = imgTag;
SpannableString sS = new SpannableString(smile);
ImageSpan span = new ImageSpan(context, pic);
sS.setSpan(span, 0, smile.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Editable edit = editText.getText();
//获取改标签的开始位置
int st = text.indexOf(smile);
//获取改标签的结束位置
int en = st + smile.length();
//替换搞定,完事儿
edit.replace(st, en, sS);
}
}
}