GradientDrawable 边框 textview 裁剪
GradientDrawable border textview croped
正如您在下图中看到的,我将一个 GradientDrawable 作为 textview 的背景。
结果很奇怪:文本被裁剪了。
还有代码:
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);
正如您在下图中看到的,我将一个 GradientDrawable 作为 textview 的背景。
结果很奇怪:文本被裁剪了。
还有代码:
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);