GradientDrawable 边框 textview 裁剪

GradientDrawable border textview croped

正如您在下图中看到的,我将一个 GradientDrawable 作为 textview 的背景。

结果很奇怪:文本被裁剪了。

Result

还有代码:

GradientDrawable border = new GradientDrawable();
    border.setColor(0x00FFFFFF);
    border.setStroke(1,Color.GRAY);
    border.setCornerRadius(size);

    EditText surname = new EditText(this);
    surname.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
    surname.setBackground(border);
    surname.setTypeface(Stats.fontRegular);
    FrameLayout.LayoutParams lps = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, size_x);
    surname.setLayoutParams(lps);
    view.addView(surname);

如果你知道一种取消裁剪文本的方法,那对我来说会非常有用:)

您可以使用此 XML 代码更改重力:

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourstringname**"
/>

我找到了有用的东西:

当您使用 EditText 时,视图中似乎有一些填充。所以你可以 'disable' 他们使用

EditText.setPadding(int left, int top, int right, int bottom)

试试这个:

 GradientDrawable border = new GradientDrawable();
border.setColor(0x00FFFFFF);
border.setStroke(1,Color.GRAY);
border.setCornerRadius(size);
border.setSize(450, 150);