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

时间:2018-06-28 07:45:41

标签: java android shape

我通过setBounds()修改GradientDrawable的高度。

我的课本状况很好。

但textview的高度也已更改。

我只能做什么才能使形状更高?

image

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;
}

1 个答案:

答案 0 :(得分:0)

一种简单的解决方案是在TextView后面放置一个ImageView并在该ImageView中进行高度更改。