我已经使用下面的代码删除了文本。
tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
并取消我在下面的代码中使用的删除
tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
我的问题是,如何更改删除线的颜色。?
我已经使用下面的代码删除了文本。
tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
并取消我在下面的代码中使用的删除
tvIngredient.setPaintFlags(tvIngredient.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
我的问题是,如何更改删除线的颜色。?
这将在您的视图上创建一条删除线
<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**
使用图层列表并将其放在文本视图的顶部作为背景。
在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 的填充权使删除线更加明显。
为此,您还可以创建一个自定义 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();