내 코드는 다음과 같습니다.
if (myView == null) {
myView = new View(mContext) {
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
final float width = (float)getWidth();
......
}
};
addView(myView);
}
requestLayout();
mContext의 크기가 0이 아니지만 내 코드의 너비는 항상 0입니다. 아무도 내가 너비가 0 인 가능한 이유가 무엇인지 조언 할 수 있습니까? 감사
onSizeChanged
핸들러 에서 캔버스의 크기를 기록한 다음 onDraw
핸들러 에서 사용해야합니다 .
private int canvasWidth;
private int canvasHeight;
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
canvasWidth = w;
canvasHeight = h;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
final float width = (float)canvasWidth;
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다