У меня есть приложение, которое отображает некоторые данные графически. Он создает два вида для рисования графики и добавляет их в мой макет. Каждое представление по-разному показывает данные, но каждое представление реализует onSizeChanged () то же самое:
protected void onSizeChanged(int curw, int curh, int oldw, int oldh) {
if (bitmap2 != null) {
bitmap2.recycle();
}
canvas2= new Canvas();
bitmap2 = Bitmap.createBitmap(curw, curh, Bitmap.Config.ARGB_8888);
canvas2.setBitmap(bitmap2);
}
Представления вызываются следующим образом:
LinearLayout myLayout = (LinearLayout)findViewById(R.id.revlay);
GraphView1 graphView1 = new GraphView1(this, theEventArrayList);
myLayout.addView(graphView1);
GraphView2 graphView2 = new GraphView2(this, theEventArrayList);
myLayout.addView(graphView2);
Всегда first onSizeChanged () , который вызывается, получает высоту 652 и ширину 480; секунда получает высоту 0, что приводит к сбою createBitmap () . Если бы я изменил порядок вышеупомянутого вызова, то graphView1 потерпит неудачу таким образом. Мне бы хотелось, чтобы каждое растровое изображение имело около половины площади.
Заранее спасибо за объяснение, что происходит!