在对话框中绘制图表

时间:2010-10-22 21:27:42

标签: android graph view dialog charts

我有一个概念性的问题要问:

我创建了一个自定义对话框(扩展Dialog),我想在对话框的前三分之一处绘制一个图表(动态数据,而不是静态数据)。

最好(唯一?)方法是什么?

A)获取画布到对话框并绘制到它?好像我需要访问对话框的抽奖,是的,还是我可以在抽奖之外做到这一点?

B)在对话框布局中对一个视图进行子类化(例如LinearLayout)并覆盖它的绘制并绘制图表?

C)其他?我读过一种方法是绘制一个位图然后blt(或等效)到画布。这听起来更接近我想做的事情,因为一旦我创建了图表,我就没有必要改变它(没有直接的用户交互)。

我还没有找到任何在对话框中处理自定义绘图的好示例代码,所以如果我遗漏了某些内容,那么示例就会很棒。

非常感谢,

2 个答案:

答案 0 :(得分:1)

解决。

我的解决方案是以上B / C的混合体。由于我需要访问视图的draw()方法,因此我创建了自己的ImageView子类(例如,MyView)。

在draw()中,我可以获得ImageView在对话框中显示的动态大小。鉴于大小,我现在可以在对话框中执行缩放到自定义ImageView大小的绘制。

我必须记住在对话框布局中使用正确的自定义视图XML语法(例如“com.avaliant.dialogtest.MyView”来替换“ImageView”)。当然,在我的对话框类中,我必须设置为查看正确的视图类:

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

一旦我理解了为什么我必须做我必须做的事情,这很容易。)。

答案 1 :(得分:0)

我是这样做的: 继续创建一个常规的Activity。然后照常在该活动中绘制我的图表。 然后将extends Activity更改为AndroidManifest.XML, 然后将该对话框的主题添加到我的 android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" 文件中:

log.d