概述
一個Android 圖片混排富文本編輯器控件(仿興趣部落)
詳細
一、一個Android 圖片混排富文本編輯器控件(仿興趣部落)
1.1 圖片混排富文本控件
是一種圖片和文字混合在一起的控件,文本之間可以插入圖片,類似於網頁的排版樣式。
1.2 該控件主要是仿興趣部落的效果,實現原理主要基於RecyclerView方案實現的。
二、演示效果圖
演示效果圖如下:
三、使用方法
3.1 首先初始化該控件:
在xml布局文件中和Activity類中聲明和定義 該控件:
<com.czm.xcricheditor.XCRichEditor android:id="@+id/richEditor" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="10dp" android:layout_below="@id/tv_header" android:layout_above="@id/rl_action" android:paddingBottom="10dp"/>
// 聲明定義控件 private XCRichEditor mRichEditor
3.2 插入/追加 圖片或者文本內容:
//插入添加圖片或者文本到控件中 List<LocalImageHelper.LocalFile> files = LocalImageHelper.getInstance().getCheckedItems(); Log.e("czm","file size="+files.size()); List<EditItem> items = new ArrayList<>(); for (int i = 0; i < files.size(); i++) { Log.e("czm","file uri="+files.get(i).getOriginalUri()); Log.e("czm","file getThumbnailUri="+files.get(i).getThumbnailUri()); EditItem item = new EditItem(); item.setUri(Uri.parse(files.get(i).getOriginalUri())); item.setType(1); item.setContent(files.get(i).getOriginalUri()); items.add(item); } mRichEditor.addImage(items);
3.3完整使用方法:
private XCRichEditor mRichEditor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Fresco.initialize(this); findViewById(R.id.add_pic).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addPic(); } }); mRichEditor = (XCRichEditor) findViewById(R.id.richEditor); } private void addPic() { Intent intent = new Intent(MainActivity.this, LocalAlbum.class); startActivityForResult(intent, ImageUtils.REQUEST_CODE_GETIMAGE_BYCROP); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.e("czm","requestCode="+requestCode); switch (requestCode) { case ImageUtils.REQUEST_CODE_GETIMAGE_BYCROP: if (LocalImageHelper.getInstance().isResultOk()) { LocalImageHelper.getInstance().setResultOk(false); //獲取選中的圖片 List<LocalImageHelper.LocalFile> files = LocalImageHelper.getInstance().getCheckedItems(); Log.e("czm","file size="+files.size()); List<EditItem> items = new ArrayList<>(); for (int i = 0; i < files.size(); i++) { Log.e("czm","file uri="+files.get(i).getOriginalUri()); Log.e("czm","file getThumbnailUri="+files.get(i).getThumbnailUri()); EditItem item = new EditItem(); item.setUri(Uri.parse(files.get(i).getOriginalUri())); item.setType(1); item.setContent(files.get(i).getOriginalUri()); items.add(item); } mRichEditor.addImage(items); //清空選中的圖片 files.clear(); //設置當前選中的圖片數量 LocalImageHelper.getInstance().setCurrentSize(files.size()); } //清空選中的圖片 LocalImageHelper.getInstance().getCheckedItems().clear(); break; default: break; } }
四、文件目錄截圖
注:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權