相关疑难解决方法(0)

Android SurfaceView滚动

我正在编写一个Android应用程序来构建一个(例如)640*480像素的屏幕外位图,并在SurfaceView中显示它.请注意,图像的大小比手机上的实际显示大.

应用程序的工作方式是它最初显示图像的左上角(0,0),然后我希望能够滚动图像.

我的Surfaceview类实现onMeasure回调并返回1024*768的大小,该大小显示与电话屏幕对应的图像区域.我想实现对滚动的支持,由于文档非常有限(只有一堆类和没有一致性的调用),我发现这几乎是不可能的.我试过只调用scrollBy,但这不起作用.

如果有人有任何关于如何进行的指示,将非常感激.

android scroll surfaceview

13
推荐指数
1
解决办法
2万
查看次数

如何从SurfaceView绘制到Canvas?

我正在努力做一个简单的画家.它看起来像Android有三个独立的Canvas的问题,并给我顺序绘图.

我用SurfaceView它制作了UI ,从中取出了Holder.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    sv = (SurfaceView) findViewById(R.id.sv);
    holder = sv.getHolder();

    holder.addCallback(callback);
}
Run Code Online (Sandbox Code Playgroud)

然后拿了Surface.

@Override
    public void surfaceCreated(SurfaceHolder holder) {
    surface = holder.getSurface();
}
Run Code Online (Sandbox Code Playgroud)

并通过OnTouchListener()绘制点和线的事件.

private void paintStartDot(float x, float y) {
    Canvas canvas = surface.lockCanvas(null);

    canvas.drawPoint(x, y, drawPaint);
    surface.unlockCanvasAndPost(canvas);

    lastX = x;
    lastY = y;
}

private void paintEndDot(float x, float y) {
    Canvas canvas = surface.lockCanvas(null);

    canvas.drawLine(lastX, lastY, x, y, drawPaint);

    surface.unlockCanvasAndPost(canvas);

    lastX = x;
    lastY = …
Run Code Online (Sandbox Code Playgroud)

android canvas surfaceview

3
推荐指数
1
解决办法
7146
查看次数

标签 统计

android ×2

surfaceview ×2

canvas ×1

scroll ×1