以前有个项目做一个笔记本类似的东西,觉得写的不太好,最近重新写,就发现了这个富文本编辑器他的效果是这样的
感觉有点厉害啊
废话不多说开始撸码
1先添加依赖
dependencies {
compile ‘jp.wasabeef:richeditor-android:1.2.0’
}
2写布局
<jp.wasabeef.richeditor.RichEditor
android:id="@+id/editor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
3设置属性啥的
RichEditor mEditor = (RichEditor) findViewById(R.id.editor);
mEditor.setEditorHeight(200);//起始编辑设置高度
mEditor.setEditorFontSize(22);//设置字体大小
mEditor.setEditorFontColor(Color.RED);//设置字体颜色
mEditor.setBold();//设置粗体
mEditor.setItalic();//设置斜体
mEditor.insertImage(RealPath, "image");//添加图片,这个图片可以是本地路径也可以是网络路径 网络路径需要添加访问网络权限,本地需要读写存储器权限
//。。。。还有好多方法大家慢慢去发现
4那我们怎么拿到这个日记文件
mEditor.setOnTextChangeListener(new RichEditor.OnTextChangeListener() {
@Override
public void onTextChange(String text) {
mPreview.setText(text);//这个text就是所输入的所有文件 他是一个html格式的
}
});
5:打开这个日记
上面说到拿到这个text了 读取这个text只需要
mEditor.setHtml(text);//就会在编辑器里面显示
6在webview里面显示
WebView webView = (WebView) findViewById(R.id.showdiarys);
webView.loadDataWithBaseURL(null, Text, "text/html", "utf-8", null);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
附上所有的文件 摘自github,自己用的话改点东西
MainActivity.java
package jp.wasabeef.sample;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import jp.wasabeef.richeditor.RichEditor;
public class MainActivity extends AppCompatActivity {
private RichEditor mEditor;
private TextView mPreview;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditor = (RichEditor) findViewById(R.id.editor);
mEditor.setEditorHeight(200);
mEditor.setEditorFontSize(22);
mEditor.setEditorFontColor(Color.RED);
//mEditor.setEditorBackgroundColor(Color.BLUE);
//mEditor.setBackgroundColor(Color.BLUE);
//mEditor.setBackgroundResource(R.drawable.bg);
mEditor.setPadding(10, 10, 10, 10);
// mEditor.setBackground("https://raw.githubusercontent.com/wasabeef/art/master/chip.jpg");
mEditor.setPlaceholder("Insert text here...");
mPreview = (TextView) findViewById(R.id.preview);
mEditor.setOnTextChangeListener(new RichEditor.OnTextChangeListener() {
@Override public void onTextChange(String text) {
mPreview.setText(text);
}
});
findViewById(R.id.action_undo).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.undo();
}
});
findViewById(R.id.action_redo).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.redo();
}
});
findViewById(R.id.action_bold).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.setBold();
}
});
findViewById(R.id.action_italic).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.setItalic();
}
});
findViewById(R.id.action_subscript).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.setSubscript();
}
});
findViewById(R.id.action_superscript).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mEditor.setSuperscript();
}
});
findViewById(R.id.action_strikethrough).setOnClickListener(new View.OnClickListener() {
@Overr