一、实现效果
WhatsNote项目地址:https://github.com/jicanghai37927/WhatsAndroid
二、设计思路
- 实现图片混排的几种方案
TextView
通过ImageSpan
添加图片;WebView
加载网页方式;ScrollView
、RecyclerView
等布局控件组合TextView
、ImageView
;
WhatsNote采用的RecyclerView
组合TextView
、ImageView
的方式,这种方式的限制是文字与图片只能按照固定的并排方式出现,无法实现图片环绕等效果。图片环绕需要通过TextView
的Span
来实现。
- 图文混排实现过程
Intent.ACTION_PICK
选择图片;Glide
加载图片;ImageView
显示图片;
三个过程完成添加图片功能。
三、实现过程
1. 选择图片
图片选择采用Intent调用第三方Activity的方式实现,并且允许选择多张图片。
boolean requestPhoto() {
SoftInputUtils.hide(getActivity());
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
try {
this.startActivityForResult(intent, REQUEST_PHOTO);
return true;
} catch (Exception e) {
}
return false;
}
在onActivityResult
中处理返回结果。
if ((resultCode == RESULT_OK) && (data != null)) {
ArrayList<Uri> list = new ArrayList<>();
{
ClipData clipData = data.getClipData(