Рисование диаграммы в диалоге - PullRequest
2 голосов
/ 23 октября 2010

У меня есть концептуальный вопрос:

Я создал настраиваемое диалоговое окно (расширяет диалог) и хочу нарисовать диаграмму (динамические данные, а не статические) в верхней трети диалогового окна.

Какой лучший (только?) Способ приблизиться к этому?

A) Получить холст к диалогу и нарисовать к нему?Похоже, мне нужен доступ к рисованию диалогового окна, да, или я могу сделать это за пределами рисования?

B) Подкласс просмотра представления в макете диалога (например, LinearLayout) и переопределить его рисовать и рисовать диаграмму?

C) Другое?Я читал, что одним из подходов было бы нарисовать растровое изображение, а затем blt (или эквивалент) холсту.Это звучит ближе к тому, что я хочу сделать, так как после того, как я создаю диаграмму, мне не нужно ее изменять (нет прямого взаимодействия с пользователем).

Я еще не нашел ни одного хорошего примера кода, который имеет дело спользовательский рисунок в диалоге, так что, если я что-то упустил, пример будет отличным.

Большое спасибо,

Rich

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Решено.

Мое решение было гибридом B / C выше.Так как мне нужен был доступ к методу draw () представления, я создал свой собственный подкласс ImageView (например, MyView).

Из draw () я могу получить динамический размер ImageView, так как онпоявляется в диалоге.Учитывая размер, я теперь могу выполнять отрисовки, масштабированные до настраиваемого размера ImageView в диалоговом окне.

Я должен был помнить, чтобы использовать правильный синтаксис XML настраиваемого представления в макете диалога (например, com.avaliant.dialogtest.MyView »для замены« ImageView »).И, конечно же, в моем диалоговом классе я должен был установить для представления правильный класс представления:

MyView test = (MyView)dialogView.findViewById(R.id.test);

Довольно просто, когда я понял, ПОЧЕМУ я должен был сделать то, что должен был сделать:).

Рич

0 голосов
/ 11 ноября 2017

Я сделал это так: просто продолжил создавать обычную активность.затем нарисуйте мою диаграмму в этой деятельности, как обычно.затем изменил extends AppCompactActvity на extends Activity, затем добавил тему этого диалога в мой AndroidManifest.XML файл:

 android:theme="@android:style/Theme.Holo.Dialog.NoActionBar"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...