Android 富文本编辑

这篇博客记录了作者在Android项目中实现富文本编辑遇到的问题和解决方案。使用了richeditor-android库,通过加载本地html文件实现内容编辑。主要问题包括自定义字体颜色的实现,作者尝试了两种方法,并在尝试过程中学习了获取和修改html节点属性。最终选择设置webview不可点击以防止颜色选择面板遮挡,但注意到这会影响webview的滑动,因此改为设置focusable为false。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目里需要加入富文本编辑,遇到几个问题,所以在此记录下我遇到的(这也是自己的第一篇技术博客,用于总结所学。。菜鸟级选手。。笑脸微笑

本篇仅用来记录使用中遇到的问题

使用可以参考:https://github.com/wasabeef/richeditor-android

实现原理:加载本地的html文件,在文件中设置contenteditable属性,设置网页可编辑,添加内容时,会将输入的内容追加在最外层的div标签内,demo中实现的加粗,斜体也是通过修改相应的样式实现的。

遇到的问题:

1.设置字体颜色,demo中提供的方法并未实现用户自定义字体颜色,网上招了许多实现方式,最后用了这个

图片:


package com.suncn.ihold.tjj.widget;


import android.app.Dialog;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.SweepGradient;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;


public class ColorPickerDialog extends Dialog {
	private final boolean debug = true;
	private final String TAG = "ColorPicker";
	private Context context;
	private String title;// 标题
	private int mInitialColor;// 初始颜色
	private OnColorChangedListener mListener;


	/**
	 * 初始颜色黑色
	 * 
	 * @param context
	 * @param title
	 *            对话框标题
	 * @param listener
	 *            回调
	 */
	public ColorPickerDialog(Context context, String title, OnColorChangedListener listener) {
		this(context, Color.BLACK, title, listener);
	}


	/**
	 * 
	 * @param context
	 * @param initialColor
	 *            初始颜色
	 * @param title
	 *            标题
	 * @param listener
	 *            回调
	 */
	public ColorPickerDialog(Context context, int initialColor, String title, OnColorChangedListener listener) {
		super(context);
		this.context = context;
		mListener = listener;
		mInitialColor = initialColor;
		this.title = title;
	}


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		WindowManager manager = getWindow().getWindowManager();
		int height = (int) (manager.getDefaultDisplay().getHeight() * 0.5f);
		int width = (int) (manager.getDefaultDisplay().getWidth() * 0.7f);
		ColorPickerView myView = new ColorPickerView(context, height, width);
		setContentView(myView);
		setTitle(title);
	}


	pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值