Я пытаюсь нарисовать график в Android.Я хочу, чтобы график масштабировался до текущего размера экрана, поэтому вместо того, чтобы явно задавать их в константах, я получаю размер LinearLayout
, который предназначен для содержания графика.Однако есть проблема в том, что невозможно получить размеры в onCreate()
действия, поэтому я использую пользовательский LinearLayout с переопределенным значением onSizeChanged()
.Я включаю его в макет с помощью:
view class="com.nnevod.loggraph.graph$GraphDisplayLayout"
android:layout_height="fill_parent"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_weight="1"
android:background="@color/White"
Я опустил угловые скобки.
В переопределенном o nSizeChanged()
считываются размеры представления, затем все делается так, как описано во многих графических примерах: создается растровое изображение, передается в класс рисования графика, создается ImageView,устанавливается с помощью растрового изображения, а затем добавляется в пользовательский LinearLayout.
Проблема в том, что изображение графика не отображается.Однако, если я попытаюсь проверить это с помощью HierarchyViewer
, изображение станет видимым.Если я скопирую код из onSizeChanged()
в onCreate()
упражнения, не используя предварительно заданные измерения вместо измеренных, все будет отображаться красиво.
Итак, мой вопрос: что я делаю неправильно?У меня были предположения, что либо я использую неправильный контекст в пользовательском onSizeChanged()
, либо невозможно оттуда обновить представление, и я должен каким-то образом передать измеренные измерения в действие и сделать вложение растрового изображенияв некоторых методах деятельности.Хотя в части контекста я пытался использовать все доступные контексты, включая использование контекста действия, но безрезультатно.
При необходимости я предоставлю больше кода.