【问题标题】:Remove underline from the text in the button (Android)从按钮中的文本中删除下划线(Android)
【发布时间】:2016-03-12 03:41:51
【问题描述】:

我正在尝试从我的按钮中删除文本的下划线。这是代码,我在下面划线:

buttonNews.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);

我也不明白为什么有人将button.getPaintFlags() 放在括号内,上面的代码可以正常工作:

button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

您能否建议如何以编程方式删除按钮内文本的下划线?

【问题讨论】:

    标签: android button underline


    【解决方案1】:

    他们将button.getPaintFlags() 放在括号内,以免丢失默认/旧标志。

    要删除UNDERLINE_TEXT_FLAG 标志,您可以这样做:

    button.setPaintFlags( button.getPaintFlags() & (~ Paint.UNDERLINE_TEXT_FLAG));
    

    这将设置所有旧标志除了 Paint.UNDERLINE_TEXT_FLAG

    【讨论】:

    • 不客气。我已经告诉过你,它会排除标志。
    • 对不起,还是不明白。所以我从 Paint.UNDERLINE_TEXT_FLAG 得到 8,在 ~ Paint.UNDERLINE_TEXT_FLAG 之后我得到 -9。但是 Paint.java 中没有这样的“静态最终 int”。
    • 这是一个例子:假设你第一次做 setPaintFlags(flag1 | flag2 | flag3 | Paint.UNDERLINE_TEXT_FLAG ); 然后当你做 setPaintFlags ( button.getPaintFlags() & (~ Paint.UNDERLINE_TEXT_FLAG)); 就像在做 setPaintFlags(flag1 | flag2 | flag3 ); => 你设置了除 UNDERLINE_TEXT_FLAG 之外的所有旧标志。所以它不是一个静态值,这就是为什么你得到一个负数。
    【解决方案2】:

    将其用于下划线文本

    tv.setText(Html.fromHtml("<u>Your Text</u>"));
    

    为了去掉下划线

    tv.setText(Html.fromHtml("Your Text")); 
    

    tv.setText("Your Text"); 
    

    【讨论】:

    • 这不起作用。我可以这样设置文本,但它没有下划线。
    • 试试这个 SpannableString content = new SpannableString(getString(R.string.bike_garage)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); tvBikeGarage.setText(内容);
    • 试试这个 button.setPaintFlags(button.getPaintFlags() & (~ Paint.UNDERLINE_TEXT_FLAG));
    猜你喜欢
    • 2016-04-15
    • 2012-01-16
    • 2016-03-13
    • 2015-10-21
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2019-11-25
    • 2011-04-26
    相关资源
    最近更新 更多