关于imageview和ondraw

ondraw方法调用但是不一定绘制

很多方法,比如setimagebitmap,会调用invalidate(),就会调用Ondraw方法,但是并不会真的绘制,因为没有达到绘制的条件,Ondraw有很多判断语句,满足条件才会绘制

ondraw在真正绘制之前,会调用多次


关于imageview,setimagebitmap会调用setimagedrawable,但是,setimagedrawable也会调用setimagebitmap,setimagedrawable调用了多个其他方法,这些方法里调用了setimagebitmap,并且传入了一个bitmap参数进去

所以,即使使用imageview没有调用setimagebitmap,但是调用setimagedrawable,可以取到一个bitmap

但是,若要用这个bitmap进行绘制,就要在ondraw里进行判断,因为取得bitmap的时间是不确定的,在这之前其他方法是可能invalidate(),那bitmap就为空了



你可能感兴趣的:(关于imageview和ondraw)