学习是最好的投资!
由於onDraw()會頻繁調用,所以不建議在該方法裡新建物件實例。
你的困擾應該是不知道怎麼正確取得View的尺寸吧,取得到的width和height總是為0。
我說一個最簡單的方法,權當拋磚引玉吧
public class CustomView extends View { private Bitmap mBitmap; public CustomView(Context context) { super(context) ... this.post(new Runnable() { @Override public void run() { mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888); } }); } }
可以用View.onLayout或ViewTreeObserver
你既然是繼承ImageView 我想你自然要使用到ImageView的setImageBitmap()、setImageDrawable等方法,所以你可以在這些方法中取得width與height或直接取得bitmap
由於onDraw()會頻繁調用,所以不建議在該方法裡新建物件實例。
你的困擾應該是不知道怎麼正確取得View的尺寸吧,取得到的width和height總是為0。
我說一個最簡單的方法,權當拋磚引玉吧
使用view.post()
可以用View.onLayout或ViewTreeObserver
你既然是繼承ImageView 我想你自然要使用到ImageView的setImageBitmap()、setImageDrawable等方法,所以你可以在這些方法中取得width與height或直接取得bitmap