Android:打出线条颜色

时间:2013-05-10 10:59:12

标签: android

我使用下面的代码完成了删除文本。

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

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

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

我的问题是,如何改变击出线的颜色。?

3 个答案:

答案 0 :(得分: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**

答案 1 :(得分:0)

为此,您还可以创建自定义文本视图并在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);
        }
    }

}

另外,对于添加行程,您可以致电

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

要删除警示,请致电

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

答案 2 :(得分:0)

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

在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中执行此操作:

    <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的填充权使得攻击更明显。