移动端强大的富文本编辑器richeditor-androi

47 阅读3分钟
  • 加粗

*/

findViewById(R.id.action_bold).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setBold();

}

});

/**

  • 斜体

*/

findViewById(R.id.action_italic).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setItalic();

}

});

/**

  • 下角表

*/

findViewById(R.id.action_subscript).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

if (mEditor.getHtml() == null) {

return;

}

mEditor.setSubscript();

}

});

/**

  • 上角标

*/

findViewById(R.id.action_superscript).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

if (mEditor.getHtml() == null) {

return;

}

mEditor.setSuperscript();

}

});

/**

  • 删除线

*/

findViewById(R.id.action_strikethrough).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setStrikeThrough();

}

});

/**

*下划线

*/

findViewById(R.id.action_underline).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setUnderline();

}

});

/**

  • 设置标题(1到6)

*/

findViewById(R.id.action_heading1).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(1);

}

});

findViewById(R.id.action_heading2).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(2);

}

});

findViewById(R.id.action_heading3).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(3);

}

});

findViewById(R.id.action_heading4).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(4);

}

});

findViewById(R.id.action_heading5).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(5);

}

});

findViewById(R.id.action_heading6).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setHeading(6);

}

});

/**

  • 设置字体颜色

*/

findViewById(R.id.action_txt_color).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

new MaterialDialog.Builder(MainActivity.this)

.title("选择字体颜色")

.items(R.array.color_items)

.itemsCallbackSingleChoice(-1, new MaterialDialog.ListCallbackSingleChoice() {

@Override

public boolean onSelection(MaterialDialog dialog, View itemView, int which, CharSequence text) {

dialog.dismiss();

switch (which) {

case 0://红

mEditor.setTextColor(Color.RED);

break;

case 1://黄

mEditor.setTextColor(Color.YELLOW);

break;

case 2://蓝

mEditor.setTextColor(Color.GREEN);

break;

case 3://绿

mEditor.setTextColor(Color.BLUE);

break;

case 4://黑

mEditor.setTextColor(Color.BLACK);

break;

}

return false;

}

}).show();

}

});

findViewById(R.id.action_bg_color).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

new MaterialDialog.Builder(MainActivity.this)

.title("选择字体背景颜色")

.items(R.array.text_back_color_items)

.itemsCallbackSingleChoice(-1, new MaterialDialog.ListCallbackSingleChoice() {

@Override

public boolean onSelection(MaterialDialog dialog, View itemView, int which, CharSequence text) {

dialog.dismiss();

switch (which) {

case 0://红

mEditor.setTextBackgroundColor(Color.RED);

break;

case 1://黄

mEditor.setTextBackgroundColor(Color.YELLOW);

break;

case 2://蓝

mEditor.setTextBackgroundColor(Color.GREEN);

break;

case 3://绿

mEditor.setTextBackgroundColor(Color.BLUE);

break;

case 4://黑

mEditor.setTextBackgroundColor(Color.BLACK);

break;

case 5://透明

mEditor.setTextBackgroundColor(R.color.transparent);

break;

}

return false;

}

}).show();

}

});

/**

  • 向右缩进

*/

findViewById(R.id.action_indent).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setIndent();

}

});

/**

  • 向左缩进

*/

findViewById(R.id.action_outdent).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setOutdent();

}

});

/**

*文章左对齐

*/

findViewById(R.id.action_align_left).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.setAlignLeft();

}

});

/**

  • 文章居中对齐

*/

findViewById(R.id.action_align_center).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setAlignCenter();

}

});

/**

  • 文章右对齐

*/

findViewById(R.id.action_align_right).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setAlignRight();

}

});

/**

  • 无序排列

*/

findViewById(R.id.action_insert_bullets).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setBullets();

}

});

/**

  • 有序排列

*/

findViewById(R.id.action_insert_numbers).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setNumbers();

}

});

/**

  • 引用

*/

findViewById(R.id.action_blockquote).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.setBlockquote();

}

});

/**

  • 插入图片

*/

findViewById(R.id.action_insert_image).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

ActivityCompat.requestPermissions(MainActivity.this, mPermissionList, 100);

}

});

/**

  • 插入连接

*/

findViewById(R.id.action_insert_link).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

new MaterialDialog.Builder(MainActivity.this)

.title("将输入连接地址")

.items("blog.csdn.net/huangxiaogu…")

.itemsCallbackSingleChoice(-1, new MaterialDialog.ListCallbackSingleChoice() {

@Override

public boolean onSelection(MaterialDialog dialog, View itemView, int which, CharSequence text) {

dialog.dismiss();

mEditor.focusEditor();

mEditor.insertLink("blog.csdn.net/huangxiaogu…",

"blog.csdn.net/huangxiaogu…");

return false;

}

}).show();

}

});

/**

  • 选择框

*/

findViewById(R.id.action_insert_checkbox).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mEditor.focusEditor();

mEditor.insertTodo();

}

});

/**

  • 获取并显示Html

*/

findViewById(R.id.tv_showhtml).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(v.getContext(), WebViewActivity.class);

intent.putExtra("contextURL", mEditor.getHtml());

startActivity(intent);

}

});

  • 插入图片并使用屏幕宽度

这里写图片描述

这里写图片描述

权限,我这里只是选着图片,关于拍照的自己可以去实现

String[] mPermissionList = new String[]{

Manifest.permission.WRITE_EXTERNAL_STORAGE,

Manifest.permission.READ_EXTERNAL_STORAGE};

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

switch (requestCode) {

case 100:

boolean writeExternalStorage = grantResults[0] == PackageManager.PERMISSION_GRANTED;

boolean readExternalStorage = grantResults[1] == PackageManager.PERMISSION_GRANTED;

if (grantResults.length > 0 && writeExternalStorage && readExternalStorage) {

getImage();

} else {

总结

算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。

这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。

部分资料展示:

有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。

资料获取方法:点赞+关注+转发,然后进入我的【GitHub】,里面有免费获取途径