关于onDraw函数不被调用的解决方法
发布日期:2021-05-07 02:33:03 浏览次数:29 分类:精选文章

本文共 860 字,大约阅读时间需要 2 分钟。

这个问题花了我一个下午才解决,找了很多方法,但是都没用。希望各位可以早点看到这个解答!!!

 

1.在重写View的时候有没有加上setWillNotDraw(false)

this.setWillNotDraw(false);

public class PeopleView extends View {    public float bitmapX;    public float bitmapY;    public PeopleView(Context context) {        super(context);        this.setWillNotDraw(false);//看看这个有没有    }    @Override    protected void onDraw(Canvas canvas){        super.onDraw(canvas);        Paint paint = new Paint();        Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.person22);        canvas.drawBitmap(bitmap,bitmapX,bitmapY,paint);        canvas.scale(0.1f,0.1f);        if(bitmap.isRecycled()){            bitmap.recycle();        }    }

如果加上了,还不能解决问题,那么试一试下面的方法。

 

2.看看你的调用函数是不是invalidata().

如果是的,将其更改为postValidata().

postValidata().

更改后能够成功调用onDraw,那么恭喜啦,

因为我是在Timer里执行View的方法,而之前的代码是使用Handler执行View方法。

原理在这里:

上一篇:Android studio 的下载安装教程
下一篇:LINUX延时函数使用

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月07日 01时38分08秒