Android 2.1 및 Eclipse를 사용하고 있습니다.내보기에서 캔버스를 어떻게 재정의 할 수 있습니까?
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams llp =
new llp.LayoutParams(250, 250);
meter1View = new MeterView(this, "Meter 1");
ll.addView(meter1View, llp);
meter2View = new MeterView(this, "Meter 2");
ll.addView(meter2View, llp);
ScrollView scrollView = new ScrollView(this);
scrollView.addView(ll);
setContentView(scrollView);
250 X 250 지금까지 너무 좋은 :
나는 크기가 두 가지 구성 요소와의 LinearLayout을 정의했습니다. 내 에뮬레이터 화면에 두 가지 수직 구성이 나타납니다.
하지만, 내 미터 View 클래스에서의 onDraw에서 캔버스의 크기가 나는 캔버스 크기를 원하는 480@Override
protected void onDraw(Canvas canvas) {
int w = canvas.getWidth();
int h = canvas.getHeight();
Log.i(TAG, " onDraw, w: " + w + ", h: " + h);
}
800으로 내 에뮬레이터 화면의 크기가 250 X이 될 것입니다
250, 그래서이 캔버스를 드로잉 루틴에 전달할 수 있습니다. 지금, 내 드로잉 루틴은 LinearLayout에 의해 정의 된 250x250 비트 맵 외부로 그림이 그려져 있습니다.
캔버스를 변환하여 작업 할 수있는 캔버스 그리기 루틴을 만들 수 있지만, 원래 캔버스를 새 캔버스로 일시적으로 덮어 쓸 수 있다면 더 깨끗합니다.
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
가 어떻게 나의 새로운 캔버스 뷰 클래스에 의해 생성 된 캔버스를 대체 할 수
은 내가으로 내 자신의 캔버스를 정의 할 수 있음을 이해? 도움이 될 것입니다.찰스