【发布时间】:2012-03-25 05:25:07
【问题描述】:
我有一个以图形方式显示一些数据的应用程序。它创建两个视图来绘制图形并将它们添加到我的布局中。每个视图以不同的方式显示数据,但每个视图实现 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);
总是被调用的第一个 onSizeChanged()的高度为652,宽度为480; second 的高度为 0,这会导致 createBitmap() 失败。如果我颠倒了上述调用的顺序,那么 graphView1 就会以这种方式失败。我希望每个位图都有大约一半的区域。
提前感谢您解释发生了什么!
【问题讨论】: