【问题标题】:how to make text-view exactly like this [duplicate]如何使文本视图完全像这样[重复]
【发布时间】:2016-02-11 19:20:27
【问题描述】:

尝试构建一个购物车并希望显示折扣价,而旧价格希望显示为图片中的样子

【问题讨论】:

标签: android textview


【解决方案1】:

这样做:

   TextView someTextView = (TextView) findViewById(R.id.some_text_view); 
   someTextView.setText(someString); // SomeString = your old price
   someTextView.setPaintFlags(someTextView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

【讨论】:

    【解决方案2】:

    动态(在运行时)你需要做的:

    TextView myTextView= (TextView) findViewById(R.id.some_text_view); 
    myTextView.setText("myOldPriceHere");
    myTextView.setPaintFlags(myTextView.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);
    

    【讨论】:

      【解决方案3】:

      有两种选择:

      使用TextViewPaint.STRIKE_THRU_TEXT_FLAG 标志

      将删除线装饰应用于绘制文本的绘制标志。

      这是一个例子:

      TextView someTextView = (TextView) findViewById(R.id.some_text_view);
      someTextView.setText("$29,500");
      myTextView.setPaintFlags(myTextView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
      

      或者使用Spannable文本,这是一个例子:

      TextView myTextView = (TextView) findViewById(R.id.my_text_view);
      myTextView .setText("$29,500", TextView.BufferType.SPANNABLE);
      final StrikethroughSpan STRIKE_THROUGH_SPAN = new StrikethroughSpan();
      Spannable spannable = (Spannable) myTextView.getText();
      spannable.setSpan(STRIKE_THROUGH_SPAN, 0, myTextView.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
      myTextView.setText(spannable);
      

      如您所见,这两个选项非常相似,因此您可以选择其中一个。

      【讨论】:

        【解决方案4】:
        textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);  
        
        textView.getPaint().setFlags(0);  //make it gone 
        

        【讨论】:

          【解决方案5】:

          您可以使用 Spannable 来实现这一点,如果您只需要将其放在文本的一部分中,它会更加灵活。这是一个例子:

          textview.setText("29,500", TextView.BufferType.SPANNABLE);
          final StrikethroughSpan STRIKE_THROUGH_SPAN = new StrikethroughSpan();
          Spannable spannable = (Spannable) textview.getText();
          spannable.setSpan(STRIKE_THROUGH_SPAN, 0, textview.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
          textview.setText(spannable);
          

          【讨论】:

            猜你喜欢
            • 2012-11-18
            • 1970-01-01
            • 2018-06-08
            • 1970-01-01
            • 1970-01-01
            • 2020-08-25
            • 2017-04-23
            • 1970-01-01
            • 2016-11-29
            相关资源
            最近更新 更多