ITxiaoguang / SelectTextHelper

高仿微信聊天消息列表自由复制文字,双击查看文本内容,用法超级简单~Copy the text freely in the high imitation WeChat chat message list, double-click to view the text content.
185 stars 25 forks source link

大佬,我自定义的emoji表情在长按选中时没有显示背景色哦 #16

Open dewi23 opened 2 hours ago

dewi23 commented 2 hours ago

// 绑定表情 方法二: Map<String, Integer> emojiMap = new HashMap<>(); emojiMap.put("[ee_0]", R.mipmap.ee_0); emojiMap.put("[ee_1]", R.mipmap.ee_1); emojiMap.put("[ee_2]", R.mipmap.ee_2); emojiMap.put("[ee_3]", R.mipmap.ee_3); emojiMap.put("[ee_4]", R.mipmap.ee_4); emojiMap.put("[ee_5]", R.mipmap.ee_5); emojiMap.put("[ee_6]", R.mipmap.ee_6); emojiMap.put("[ee_7]", R.mipmap.ee_7); emojiMap.put("[ee_8]", R.mipmap.ee_8); emojiMap.put("[ee_9]", R.mipmap.ee_9); emojiMap.put("[ee_10]", R.mipmap.ee_10); emojiMap.put("[ee_11]", R.mipmap.ee_11); emojiMap.put("[ee_12]", R.mipmap.ee_12); emojiMap.put("[ee_13]", R.mipmap.ee_13);

    // 使用 SelectTextHelper 的 putAllEmojiMap 方法
    SelectTextHelper.Companion.putAllEmojiMap(emojiMap);

    mSelectableTextHelper = new SelectTextHelper.Builder(mTvDetailContent) // 放你的 textView 到这里
            .setCursorHandleColor(ContextCompat.getColor(mActivity, R.color.colorAccent)) // 游标颜色
            .setCursorHandleSizeInDp(22f) // 游标大小 单位 dp
            .setSelectedColor(ContextCompat.getColor(mActivity, R.color.color_D9E4FF)) // 选中文本的颜色
            .setSelectAll(false) // 初次选中是否全选,默认为 true
            .setScrollShow(true) // 滚动时是否继续显示,默认为 true
            .setSelectedAllNoPop(false) // 已经全选无弹窗,设置了监听会回调 onSelectAllShowCustomPop 方法
            .setMagnifierShow(false) // 放大镜,默认为 true
            .setSelectTextLength(2) // 首次选中文本的长度,默认为 2
            .setPopDelay(100) // 弹窗延迟时间,默认为 100 毫秒
            //.setPopAnimationStyle(R.style.Base_Animation_AppCompat_Dialog) // 弹窗动画,默认为无动画
            .addItem(0, getString(R.string.copys), new SelectTextHelper.Builder.onSeparateItemClickListener() {
                @Override
                public void onClick() {
                    copy();
                }
            }) // 操作弹窗的每个 item
            .setPopSpanCount(5) // 设置操作弹窗每行个数,默认为 5
            .setPopStyle(R.drawable.shape_color_4c4c4c_radius_8, 0) // 设置操作弹窗背景色、箭头图片
            .build();

20241119-162340

ITxiaoguang commented 2 hours ago

emoji表情需要继承 https://github.com/ITxiaoguang/SelectTextHelper/blob/master/selecttext/src/main/java/com/xiaoguang/selecttext/SelectImageSpan.kt才可以,或者把资源文件放到drawable里面试试

dewi23 commented 1 hour ago

试了还是不行。也继承了SelectImageSpan

ITxiaoguang commented 1 hour ago

把完整的demo下下来,试试呢,里面有具体实现,demo里用的是com/xiaoguang/selecttextview/MsgAdapter.kt富文本,改成普通文本试试。

// todo 方法二:普通文本
holder.textView.text = msgBean.content
// 演示消息列表选择文本
holder.selectText(msgBean)