Java 以编程方式将GradientDrawable的高度更改为textview背景

Java 以编程方式将GradientDrawable的高度更改为textview背景,java,android,shape,Java,Android,Shape,我修改了GradientDrawable by setBounds()的高度 我的文本视图的形状很好 但textview的高度也发生了变化 我能做些什么,只是为了让身材更高 一个简单的解决方案是在文本视图后面有一个ImageView,并在该ImageView中进行高度更改。发布图像,我想要图像中的右侧形状,只需稍作调整,即可使形状看起来更好。 private Drawable getTagBackground(int iColor, final int iTextViewWidth, fina

我修改了GradientDrawable by setBounds()的高度

我的文本视图的形状很好

但textview的高度也发生了变化

我能做些什么,只是为了让身材更高


一个简单的解决方案是在文本视图后面有一个ImageView,并在该ImageView中进行高度更改。

发布图像,我想要图像中的右侧形状,只需稍作调整,即可使形状看起来更好。
private Drawable getTagBackground(int iColor, final int iTextViewWidth, final int iTextViewHeight) {
    final float RATIO_SHAPE_WIDTH = 1.5f;
    final float RATIO_SHAPE_HEIGHT = 2.3f;
    final int STROKE_WIDTH = 3;
    final float CORNER_RADIUS = 40f;

    GradientDrawable gd = new GradientDrawable() {
        @Override
        public int getIntrinsicWidth() {
            return (int)(super.getIntrinsicWidth() * RATIO_SHAPE_WIDTH);
        }

        @Override
        public int getIntrinsicHeight() {
            return (int)(super.getIntrinsicHeight() * RATIO_SHAPE_HEIGHT);
        }
    };
    gd.setShape(GradientDrawable.RECTANGLE);
    gd.setSize(iTextViewWidth, iTextViewHeight);
    gd.setColor(Color.TRANSPARENT);
    gd.setStroke(STROKE_WIDTH, iColor);
    gd.setCornerRadius(CORNER_RADIUS);
    //gd.setBounds(0, 0, iTextViewWidth, iTextViewHeight * 2);

    return gd;
}