1. 程式人生 > >EditText新增圖片和顯示圖片

EditText新增圖片和顯示圖片

         /**
	 * @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);
			}
		}
	}