公司产品1.1版本,新增的富文本编辑,真是弄死了,昨天弄了一个晚上,弄到凌晨4点,依然无果
尝试 用过的几种方法 分享下
1.使用edittext,这个应该是最直观的了,正常的文本编辑可以使用edittext,但是 只是能使用文本的,经过研究发现了两个方法 可以实现,但是 有一个问题,在添加图片以后,尺寸需要控制好,在edittext滑动的时候有bug,会出现文字被图片遮挡,编辑的时候,光标在图片位置,很难滑动编辑区域,所以放弃了这种方法
方法如下:
/**
* 添加图片
*
* @param url
*/
public void addImage(String url) {
//通过uil获取到本地的图片地址,剪切小图来获取Bitmap
Bitmap bm = BitMapUtils.getSmallBitmap(url);
insertIntoEditText(getBitmapMime(bm, url));
}
private void insertIntoEditText(SpannableString ss) {
Editable et = mcontent.getText();// 先获取Edittext中的内容
int start = mcontent.getSelectionStart();
et.insert(start, ss);// 设置ss要添加的位置
mcontent.setText(et);// 把et添加到Edittext中
mcontent.setSelection(start + ss.length());// 设置Edittext中光标在最后面显示
}
private SpannableString getBitmapMime(Bitmap pic, String uri) {
SpannableString ss = new SpannableString(uri);
ImageSpan span = new ImageSpan(this, pic);
ss.setSpan(span, 0, uri.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}
尝试 用过的几种方法 分享下
1.使用edittext,这个应该是最直观的了,正常的文本编辑可以使用edittext,但是 只是能使用文本的,经过研究发现了两个方法 可以实现,但是 有一个问题,在添加图片以后,尺寸需要控制好,在edittext滑动的时候有bug,会出现文字被图片遮挡,编辑的时候,光标在图片位置,很难滑动编辑区域,所以放弃了这种方法
方法如下:
/**
* 添加图片
*
* @param url
*/
public void addImage(String url) {
//通过uil获取到本地的图片地址,剪切小图来获取Bitmap
Bitmap bm = BitMapUtils.getSmallBitmap(url);
insertIntoEditText(getBitmapMime(bm, url));
}
private void insertIntoEditText(SpannableString ss) {
Editable et = mcontent.getText();// 先获取Edittext中的内容
int start = mcontent.getSelectionStart();
et.insert(start, ss);// 设置ss要添加的位置
mcontent.setText(et);// 把et添加到Edittext中
mcontent.setSelection(start + ss.length());// 设置Edittext中光标在最后面显示
}
private SpannableString getBitmapMime(Bitmap pic, String uri) {
SpannableString ss = new SpannableString(uri);
ImageSpan span = new ImageSpan(this, pic);
ss.setSpan(span, 0, uri.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}