如何在Android中用红色设置文本视图的罢工线

Res*_*ent 3 android

使用此代码,我可以显示带有罢工的文本视图到 textView :

   holder.discounttext.setText("MRP " + rupee + discountcost);
            holder.discounttext.setPaintFlags(holder.discounttext.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Run Code Online (Sandbox Code Playgroud)

这是我的当前屏幕:在此处输入图片说明

愿望画面:

在此处输入图片说明

请告诉我如何用红色设置罢工颜色?

Akh*_*mar 5

制作自定义 TextView

    class CustomTextView extends TextView {
            public Paint paint;
            public boolean addStrike = false;
    public CustomTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}
        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.RED);
            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);
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

为了增加斯托克,你可以打电话

myCustomTextView.addStrike = true;
myCustomTextView.invalidate();
Run Code Online (Sandbox Code Playgroud)

和删除罢工你只需打电话

myCustomTextView.addStrike = false;
myCustomTextView.invalidate();
Run Code Online (Sandbox Code Playgroud)


cap*_*wag 5

最简单的方法是使用 Drawable。思路是创建一个line drawable,然后用这个drawable设置TextView的背景。让 Drawable 文件为 line.xml

<item android:state_pressed="false">
    <shape android:shape="line">
        <stroke android:width="2dp"
            android:color="#ffffff" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

这是红色和 2dp 宽度的线条的可绘制对象。【根据你的要求修改】

然后在 TextView 上,将 line.xml drawable设置为背景。

holder.discounttext.setBackground(getResources().getDrawable(R.drawable.line));
Run Code Online (Sandbox Code Playgroud)

输出将是

在此处输入图片说明

  • 不适合多行文本视图。 (2认同)