Я использую Android 2.1 и Eclipse.Как я могу переопределить холст в моем представлении?
Я определил LinearLayout с двумя компонентами, которые имеют размеры: 250 х 250.
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);
До сих пор, так хорошо. Я вижу два вертикальных компонента на экране эмулятора.
Однако, на мой метр Посмотреть класс, размер холста в OnDraw является размер моего эмулятора экрана, который 480 на 800.
@Override
protected void onDraw(Canvas canvas) {
int w = canvas.getWidth();
int h = canvas.getHeight();
Log.i(TAG, " onDraw, w: " + w + ", h: " + h);
}
Я хотел бы размер холста в 250 х 250, так что я могу передать этот холст для рисования подпрограмм. Прямо сейчас мои чертежные процедуры выходят за рамки 250 x 250 битмапов, которые были определены моим LinearLayout.
Я понимаю, что я могу сделать свою ручную работу с холстом, чтобы работать, переведя холст, но было бы более чистым, если бы я мог временно переопределить оригинальный холст новым.
Я понимаю, что я могу определить свое собственное полотно:
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
Как я могу заменить холст, созданный видовым класс с моим новым холстом? Любая помощь будет принята с благодарностью.
Чарльз