gpt4 book ai didi

Android:将带有剪辑的图片绘制到 ScrollView 中会导致一致的 ANR?

转载 作者:行者123 更新时间:2023-11-29 14:08:19 25 4
gpt4 key购买 nike

我的应用程序遇到了一个神秘的 ANR,它使用图片记录绘图命令(路径、剪辑、文本等),然后将这些图片绘制到 ScrollView 持有的 View 中。我能够通过以下 Activity 重现该问题。在此 Activity 中,向下滚动 ScrollView 将在到达正方形底部时立即产生 ANR。还有其他人遇到过这个吗?关于如何避免它的任何建议?

public class AnrTest extends Activity
{
public void onCreate(Bundle saveInstBundle)
{
super.onCreate(saveInstBundle);

ScrollView sc = new ScrollView(this);
MyView view = new MyView(this);
sc.addView(view);
setContentView(sc);
}

class MyView extends View
{
Picture mPic;

public MyView(Context context)
{
super(context);
mPic = new Picture();
Canvas picCanvas = mPic.beginRecording(300, 900);

Paint p = new Paint();
p.setColor(Color.RED);
picCanvas.drawRect(20, 20, 100, 100, p);

picCanvas.clipRect(0, 0, 100, 100);

mPic.endRecording();
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
//set a height larger than the screen, so that we can scroll.
setMeasuredDimension(300, 900);
}

protected void onDraw(Canvas canvas)
{
canvas.drawPicture(mPic);
}
}
}

最佳答案

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
//set a height larger than the screen, so that we can scroll.
setMeasuredDimension(300, 900);
requestLayout();
}

你让 child 比它的 parent 大。 requestLayout() 将解决您的问题。

关于Android:将带有剪辑的图片绘制到 ScrollView 中会导致一致的 ANR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397581/

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