секунда onSizeChanged получает высоту нуля - PullRequest
3 голосов
/ 02 февраля 2011

У меня есть приложение, которое отображает некоторые данные графически. Он создает два вида для рисования графики и добавляет их в мой макет. Каждое представление по-разному показывает данные, но каждое представление реализует 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 потерпит неудачу таким образом. Мне бы хотелось, чтобы каждое растровое изображение имело около половины площади.

Заранее спасибо за объяснение, что происходит!

1 Ответ

0 голосов
/ 25 марта 2012

трудно ответить на ваш вопрос, не зная дополнительных подробностей реализации ваших графических представлений и параметров макета LinearLayout. Но если предположить, что ваш LinearLayout имеет горизонтальную ориентацию, попробуйте это:

GraphView1 graphView1 = new GraphView1(this, theEventArrayList);
GraphView2 graphView2 = new GraphView2(this, theEventArrayList);
myLayout.addView(graphView2, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1));
myLayout.addView(graphView1, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1));

это скажет LinearLayout упорядочить ваши представления так, чтобы они равномерно разделяли горизонтальное пространство между собой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...