EditText显示图片,删除图片,点击图片 您所在的位置:网站首页 安卓机器人死了图片删除 EditText显示图片,删除图片,点击图片

EditText显示图片,删除图片,点击图片

2024-04-08 02:43| 来源: 网络整理| 查看: 265

此处将介绍EditText中图片和文本的混排、删除图片、并可以监听到点击图片的事件。

EditText中图片和文本的混排:

方法概述:获取图片的存储路径,添加标签,然后转成SpannableString,将SpannableString中的部分用 ImageSpan 替换。

e.g   图片路径 /mnt/sdcard/xxx.png,.添加之后就是  ,接下来的就直接看代码:

mEtContent = (EditText) findViewById(R.id.et_content); mEtContent.append(getDrawableStr(picPath));

private CharSequence getDrawableStr(String picPath) { InputStream is; try { String str = ""; is = new FileInputStream(picPath); BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inTempStorage = new byte[100 * 1024]; opts.inPreferredConfig = Bitmap.Config.RGB_565; // 默认是Bitmap.Config.ARGB_8888 opts.inSampleSize = 4; /* 下面两个字段需要组合使用 ,说是为了节约内存 */ opts.inPurgeable = true; opts.inInputShareable = true; Bitmap bm = BitmapFactory.decodeStream(is, null, opts); final SpannableString ss = new SpannableString(str); // 定义插入图片 Drawable drawable = new BitmapDrawable(bm); drawable.setBounds(2, 0, 400, 350); ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); ss.setSpan(span, 0, ss.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); return ss; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } }

BitmapFactory.Options opts 是为了压缩图片的,大图片没经过处理容易OutOfMemoryError。通过设置BitmapFactory.Option的某些参数值可以修改图片的压缩比例。

这里还涉及到一个图片显示的问题:如,我通过上面的代码添加了几张图片,关闭应用后保存EidtText(mEtContent.getText().toString())中的内容,下一次打开的时候把这些内容显示出来再进行编辑。

方法概述:将保存的String中的标签都替换成ImageSpan就可以了。这里我用了一个递归方法:

public static final String IMG_START = ""; /** * 从content解析出图片标签,并设置到EditText中。 * 算法:假设 aaaaa, bbbbbbbb————


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有