EditText添加图片和显示图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
			}
		}
	}

猜你喜欢

转载自blog.csdn.net/dengmengxin/article/details/38871443