【问题标题】:How to change color of a strikethrough in android? [duplicate]如何在android中更改删除线的颜色? [复制]
【发布时间】:2014-08-22 05:02:27
【问题描述】:

我是安卓新手。我尝试使用以下代码进行删除线。但是我怎样才能改变删除线的颜色(目前是黑色,我想要红色)。我知道它可能更简单,但即使在谷歌搜索之后我也找不到它。请帮忙。提前致谢。

txtview.setText("Hello");
txtview.setPaintFlags(txtview.getPaintFlags()|Paint.STRIKE_THRU_TEXT_FLAG);

【问题讨论】:

  • 你用的是什么api?
  • 我使用的是 4.4 Kitkat
  • 删除线是字体的一部分(它适用于字符),您不能使用 2 色字符。我想到的简单解决方案是叠加第二个 TextView,将 textColor 设置为 RED 并将其用于删除线

标签: android textview paint


【解决方案1】:

我认为这对于简单的 textview 是不可能的,因此您必须执行以下操作:-

1.通过扩展View类创建自定义TextView

2.在 XML 布局中声明这个自定义文本视图,就像我们对 TextView 所做的一样。

最后编写一个 onDraw() 方法,如下所示。

    @Override
       protected void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        paint.setColor(strikeThroughColor);
        paint.setStyle(Paint.Style.FILL); 
        paint.setStrikeThruText(true);
        paint.setStrokeWidth(strikeThroughWidth);
        paint.setFlags(Paint.ANTI_ALIAS_FLAG);
        super.onDraw(canvas);
        float width = getWidth();
        float heigh = getHeight();
        canvas.drawLine(width/10, heigh/10, (width-width/10),(heigh-heigh/10), paint);
}

希望对你有帮助。

【讨论】:

  • @Anand.B:这个答案对你有帮助吗???
  • @Anand.B 至少回复
  • 谢谢我!抱歉,我很忙,所以回复晚了!
  • 你能再贴一些代码吗我只有一个文本视图我需要应用报价和实际价格以及不同颜色的折扣请帮助我
  • @Harsha 您是否找到了任何解决方案来满足您的要求,例如在单个文本视图中显示报价和实际价格??
猜你喜欢
  • 2021-11-09
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2019-06-18
  • 1970-01-01
相关资源
最近更新 更多