android 如何创建重叠的图像范围?

fnvucqvd  于 2022-12-21  发布在  Android
关注(0)|答案(1)|浏览(138)

我想创建一个SpannableString与一些情感和文字像这样的图像。

下面是我使用的方法,但它只是把情感与文字联系在一起。请告诉我如何创建这样的视图类型。

private SpannableStringBuilder getLikeCountString(UserFeedData feedData, Context mContext) {
        SpannableStringBuilder builder = new SpannableStringBuilder();
        int emotionSize = (int) mContext.getResources().getDimension(R.dimen.emotion_size);
        if (feedData.getEmotionTypes() != null) {
            String[] emotions = feedData.getEmotionTypes().split(",");
            for (String emotion : emotions) {
                SpannableString emojSpan = new SpannableString("  ");
                // Getting image based on emotion id
                Drawable icon = ContextCompat.getDrawable(mContext, ContentDetailFragment.getLikeEmotionResource(Integer.valueOf(emotion.trim())));
                //icon.setBounds(0, 0, (icon.getIntrinsicWidth() / 2) + 5, (icon.getIntrinsicHeight() / 2) + 5);
                icon.setBounds(0, 0, emotionSize, emotionSize);

                ImageSpan imageSpan = new ImageSpan(icon, ImageSpan.ALIGN_BOTTOM);
                emojSpan.setSpan(imageSpan, 0, emojSpan.length() - 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
                builder.append(emojSpan);

            }
        }

        if (feedData.getContentLikes() > 0) {
            builder.append(feedData.getContentLikes() + " ");
        }

        return builder;
    }
ztmd8pv5

ztmd8pv51#

不要为每个表情使用单独的ImageSpan,而是使用一个ImageSpanLayerDrawable,每层一个表情,你可以用LayerDrawable做各种各样的重叠。

相关问题