android View 的getWidth(),getHeight总是0请问怎么解决哦?View cv = context.getWindow().getDecorView();
bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Bitmap.Config.ARGB_8888);发现cv.getWidth(), cv.getHeight()的值都是0,导致异常,请教如何解决哦
bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Bitmap.Config.ARGB_8888);发现cv.getWidth(), cv.getHeight()的值都是0,导致异常,请教如何解决哦
View cv = context.getWindow().getDecorView();
bmp = Bitmap.createBitmap(cv.getMeasuredWidth(), cv.getMeasuredHeight(),Bitmap.Config.ARGB_8888);
//------------------------------------------------方法一
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
imageView.measure(w, h);
int height =imageView.getMeasuredHeight();
int width =imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
//-----------------------------------------------方法二
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int height = imageView.getMeasuredHeight();
int width = imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
return true;
}
});
//-----------------------------------------------方法三
ViewTreeObserver vto2 = imageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());
}
});