gpt4 book ai didi

android - 第二个 onSizeChanged 的​​高度为零

转载 作者:太空狗 更新时间:2023-10-29 15:23:29 24 4
gpt4 key购买 nike

我有一个以图形方式显示一些数据的应用程序。它创建了两个 View 来绘制图形并将它们添加到我的布局中。每个 View 以不同的方式显示数据,但每个 View 都以相同的方式实现 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);
}

这样调用 View :

      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; 第二个 的高度为 0,这导致 createBitmap() 失败。如果我颠倒上述调用的顺序,那么 graphView1 将以这种方式失败。我希望每个位图有大约一半的面积。

预先感谢您解释发生了什么!

最佳答案

如果不了解有关图形 View 和 LinearLayout 布局参数的更多实现细节,很难回答您的问题。但假设您的 LinearLayout 具有水平方向,请尝试以下操作:

GraphView1 graphView1 = new GraphView1(this, theEventArrayList);
GraphView2 graphView2 = new GraphView2(this, theEventArrayList);
myLayout.addView(graphView2, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1));
myLayout.addView(graphView1, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1));

这将告诉 LinearLayout 安排您的 View ,以便它们平均划分它们之间的水平空间。

关于android - 第二个 onSizeChanged 的​​高度为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4875885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com