EditText新增圖片和顯示圖片
阿新 • • 發佈:2018-11-29
/** * @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); } } }