gpt4 book ai didi

android - 4.1下ScrollView中的SurfaceView

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:44 25 4
gpt4 key购买 nike

问题来了。出于性能原因,我选择使用 SurfaceView 来绘制类似表格的表单,并且因为这些东西充满了数据,所以我使用 ScrollView 作为 SurfaceView 父级。

很高兴看到它在我的个人开发专用手机(HTC Desire HD 2.3.7)上运行良好,我尝试在我公司的一部开发专用手机(Google Nexus S 4.1.?)上测试它,然后在我的个人手机 (HTC One X 4.1.1)。

最后两个出现问题,我的 SurfaceView 在大约 ~80px 滚动后变黑,当我滚动到 ~80px 下(取决于屏幕尺寸)时又变回应有的样子。

为了避免这种停电,我在一些模拟器下进行了测试......

从 2.2(客户的愿望)到 4.0.4,它运行得很好。

笑话是,在 4.2 下......它也能工作!

肯定是4.1.x下SurfaceView变黑了!

这是我的 SurfaceView 代码,我刚刚从您可以找到的示例中复制了 here .

public class MySurfaceView extends SurfaceView
{
public MySurfaceView(Context context, AttributeSet attrs)
{
super(context, attrs);
// I use another SurfaceView behind to draw a grid
// that is scroll independent with a white background
this.setZOrderOnTop(true);
// Same reason here
this.getHolder().setFormat(PixelFormat.TRANSPARENT);
this.getHolder().addCallback(this);
this.getHolder().setSizeFromLayout();
// Tried without this line and with "software" and "none" types too
// and hardware acceleration on application and activity
this.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}

@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);

canvas.drawSomething()...
}

public void surfaceCreated(SurfaceHolder holder)
{
this.setWillNotDraw(false);

this.thread = new MySurfaceViewThread(this.getHolder(), this);
this.thread.setRunning(true);
this.thread.run();
}

public void surfaceDestroyed(SurfaceHolder holder)
{
this.thread.setRunning(false);
boolean retry = true;
while(retry)
{
try
{
this.thread.join();
retry = false;
}
catch(Exception exception)
{
Log.v(TAG, exception.getClass().getName(), exception);
}
}
}
}

最佳答案

这个代码 fragment 可能是一个答案

if(VERSION.SDK_INT != VERSION_CODES.JELLY_BEAN)
{
this.setZOrderOnTop(true);
}

但这样做的问题是背景变黑了。

对于这个特定的 android 版本,我也必须在这个“背景”SurfaceView 中绘制我绘制的网格。

这不是一个好的解决方案,因为在此 SurfaceView 中绘制网格会破坏滚动和双指缩放的平滑度。

关于android - 4.1下ScrollView中的SurfaceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938202/

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