0

我已经使用下面的代码删除了文本。

tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

并取消我在下面的代码中使用的删除

tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));

我的问题是,如何更改删除线的颜色。?

4

3 回答 3

1

这将在您的视图上创建一条删除线

<View
      android:id="@+id/View_Strike"
          android:layout_width="match_parent"
          android:layout_below="@id/Layout_myRow"
          android:layout_height="1dp"
          android:background="@android:color/white" />

现在您正在为您的listview设计行布局。以这样的方式放置上面的视图,使其在行布局中的所需位置与文本视图重叠

并设置其visibility Gone

现在取决于您必须击穿物品的情况,使其可见性可见

当然是解决方案!我在我的一个应用程序中使用过它

Just remember that the parent layout have to be **RelativeLayout** to use layout_below on child**
于 2013-05-10T11:36:09.763 回答
1

使用图层列表并将其放在文本视图的顶部作为背景。

在drawables文件夹中创建一个名为strikethru.xml的文件:

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF"/>
        </shape>
    </item>
    <item>
        <shape android:shape="line">
            <stroke android:width="1dp"
                android:color="#8d8d8d"/> <!-- adjust color you want here -->
        </shape>
    </item>
</layer-list>

然后在你的文本视图中这样做:

    <TextView
                                android:id="@+id/tv_toolbar_prod_price"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"

                                android:paddingRight="3dp"
                                android:text="1,290 B"      

android:background="@drawable/strikethru_line"
                                android:textColor="#070707"
                                android:textSize="13sp" />

3dp 的填充权使删除线更加明显。

于 2017-07-19T09:26:03.643 回答
0

为此,您还可以创建一个自定义 textview 并在 textview 画布上绘制一条线,使用您喜欢的颜色和笔触粗细

class CustomTextView extends TextView {
        public Paint paint;
        public boolean addStrike = false;

    public CustomTextView(Context context) {
        super(context);
        init(context);
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }

    private void init(Context context) {
        paint = new Paint();
        paint.setColor(Color.GREEN);
        paint.setStrokeWidth(getResources().getDisplayMetrics().density * 1);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        if (addStrike) {
            canvas.drawLine(0, getHeight() / 2, getWidth(),
                    getHeight() / 2, paint);
        }
    }

}

也可以添加 stoke 你可以打电话

myCustomTextView.addStrike = true;
myCustomTextView.invalidate();

为了消除罢工,您只需致电

myCustomTextView.addStrike = false;
myCustomTextView.invalidate();
于 2013-05-10T12:01:06.247 回答