好的,以下是一个示例的自定义TextView的代码:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class EraseTextView extends View {

    private Paint paint;
    private int viewWidth;

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

    public EraseTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public EraseTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(50);
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.FILL);
        viewWidth = getWidth();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawText("Hello World", viewWidth / 2, getHeight() / 2, paint);
    }

    public void erase() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (viewWidth > 0) {
                    viewWidth -= 10;
                    postInvalidate(); // 异步刷新View
                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
}

这个自定义TextView会在屏幕上绘制出"Hello World",并提供了一个erase()方法来实现从右往左擦除的效果。在erase()方法中启动了一个新的线程,不断减小view的宽度,并通过postInvalidate()方法来刷新View。通过调用erase()方法即可启动擦除效果

Android开发:写一个自定义的TextView要求这个自定义view有个public的接口调用时该view像一幅画从右往左擦除一样的效果从右往左逐渐消失掉同时view的宽度不停减少你别给我省略代码!刚给的代码还是不对!重来!

原文地址: http://www.cveoy.top/t/topic/iYOt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录