RelativeLayout의 하위 항목을 만들었습니다. 생성자에서 나는라고 : 없음 선이 뷰에 나타나 있지 않은Android : 캔버스에서 그리기 및 비트 맵없이보기
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
black.setARGB(255, 0, 0, 0);
black.setAntiAlias(true);
int halfWidth = this.getWidth()/2;
int height = this.getHeight();
canvas.drawLine(0, 0, halfWidth, height, black);
}
:
public CanvasHolder(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(R.layout.canvas_holder, this);
this.draw(new Canvas());
}
그리고이 방법의 onDraw()를 재정의합니다. 또한 "this.draw()"를 호출하지 않으려 고했지만 아무 일도 없었습니다.
나는 halfWidth와 height가 0이라는 것을 발견했습니다. 왜?
P. 정적으로 너비와 높이를 설정하더라도 아무 것도 변경되지 않습니다. 괜찮 으면이 샘플 응용 프로그램을 살펴보십시오. 왜 아무 것도 그려지지 않는 이유는 무엇입니까? http://androidforums.com/attachment.php?attachmentid=21715&stc=1&d=1315232946
아마도 레이아웃에서 높이와 너비가 wrap_content로 설정 되었습니까? fill_parent 또는 그와 비슷한 다른 것으로 변경해보십시오. – Joru
아니요, 정적 값 160px 및 220px를 설정했습니다. – QuickNick
새 Canvas()를 호출하기 때문일 수 있습니다. 실제로는 뷰에 연결되어 있지 않습니다. 보기를 그릴 때 SurfaceView 예제를 살펴보십시오. – Joru