首页 > 解决方案 > 自定义 CircleImageView 边框

问题描述

我正在尝试构建一个消息传递应用程序,我想知道是否可以在一个形状/视图中重新创建 XML 中的发件人图像和名称

我想制作一个像这张图片一样弯曲形状的 CircleImageView

我想重新创建的图像

我希望它是一种形状的原因是我希望能够以编程方式更改颜色。

PS:现在我设法通过将 TextView 放在 CircleImageView 后面来接近我想要的。

标签: androidandroid-layoutshapes

解决方案


您可以根据需要轻松创建带有可绘制对象的 TextView,例如带有 drawableLeft、drawableRight、drawableTop、drawableBottom 的 TextView,您还可以添加 drawablePadding 以及使用重力、layout_gravity、layout_height 来定位文本与图像。

然后您可以使用Glide加载图像,您可以根据需要自定义边框:

Glide.with(myFragmentOrActivity)
         .load(imageUrl)
         .apply(RequestOptions.circleCropTransform())
         .into(new CustomTarget<Drawable>(100,100) {

        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition)
        {
            left.setCompoundDrawablesWithIntrinsicBounds(null, resource, null, null);
        }

        @Override
        public void onLoadCleared(@Nullable Drawable placeholder)
        {
            left.setCompoundDrawablesWithIntrinsicBounds(null, placeholder, null, null);
        }
    });

推荐阅读