TextView Drawalbe文字图标居中显示

转载:https://www.jianshu.com/p/8fed97f414b8

你是否遇到这种情况,在TextView宽度或高度过大时,drawable在textveiw所在区域的边缘,但是我们想要的是图片跟随文字居中.

比如我们想要以下效果:


WechatIMG2.jpeg

我以前也是遇到过几次,都是偷懒用ImageView代替了。

这次项目中用的地方比较多,果断封装个控件。

效果图:
github : https://github.com/niniloveyou/DrawableTextView

drawableTextView.jpeg

如何使用:

添加这两个文件
deadline/DrawableTextView.java
res/values/attrs.xml

代码中这样设置即可

Drawable drawable = ContextCompat.getDrawable(getContext(),R.mipmap.xx);
setDrawable(DrawableTextView.LEFT, drawable, width, height);

xml中定义了以下属性

<deadline.DrawableTextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"

            android:drawablePadding="5dp"

            app:bottomDrawable="@mipmap/camera"
            app:bottomDrawableHeight="20dp"
            app:bottomDrawableWidth="20dp"

            app:leftDrawable="@mipmap/camera"
            app:leftDrawableHeight="20dp"
            app:leftDrawableWidth="20dp"

            app:rightDrawable="@mipmap/camera"
            app:rightDrawableHeight="20dp"
            app:rightDrawableWidth="20dp"

            app:topDrawable="@mipmap/camera"
            app:topDrawableHeight="20dp"
            app:topDrawableWidth="20dp"/>

github : https://github.com/niniloveyou/DrawableTextView
用的到,Star点下,谢谢!

可能会有的问题:

由于是对画布的位移实现的,导致foreground可能会显示不正确,
目前还没有想到怎么处理,如果有任何建议,请直接在github上提issue.

猜你喜欢

转载自blog.csdn.net/Silence_Sep/article/details/81302066