【问题标题】:GradientDrawable border textview cropedGradientDrawable 边框文本视图裁剪
【发布时间】:2016-08-21 16:39:29
【问题描述】:

如下图所示,我将 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);

如果您知道一种取消裁剪文本的方法,这对我将非常有用:)

【问题讨论】:

  • size_x 是什么,为什么将其设置为高度?这是裁剪文本视图。

标签: android textview gradientdrawable


【解决方案1】:

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

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

【讨论】:

  • 抱歉,我不使用 XML,因为我以编程方式设置了视图的几乎每个参数。你可以在 Java 中看到我已经尝试改变重力
  • 尝试更改这条代码:surname.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
【解决方案2】:

我发现了一些有用的东西:

当您使用 EditText 时,视图内似乎有一些填充。因此,您可以使用“禁用”它们

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

【讨论】:

    【解决方案3】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2012-02-07
      • 2013-03-06
      • 2019-08-02
      • 2020-03-20
      相关资源
      最近更新 更多