我正在尝试在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,使用Bitmap设置,然后添加到自定义LinearLayout。
问题是,图表的图像不可见。但是,如果我尝试使用HierarchyViewer
进行检查,则图像会变得可见。如果我将代码从onSizeChanged()
剪切粘贴到活动的onCreate()
,使用预设尺寸而不是测量尺寸,则所有内容都会很好地显示。
所以,我的问题是我做错了什么?我假设我在自定义onSizeChanged()
中使用了错误的上下文,或者无法从那里更新视图,我应该以某种方式将测量的维度传递给活动并进行附件一些活动方法中的位图。
虽然在上下文部分,我尝试使用所有可用的上下文,包括使用活动的上下文,但无济于事。
如果需要,我会提供更多代码。