我正在编写一个Android应用程序来构建一个(例如)640*480像素的屏幕外位图,并在SurfaceView中显示它.请注意,图像的大小比手机上的实际显示大.
应用程序的工作方式是它最初显示图像的左上角(0,0),然后我希望能够滚动图像.
我的Surfaceview类实现onMeasure回调并返回1024*768的大小,该大小显示与电话屏幕对应的图像区域.我想实现对滚动的支持,由于文档非常有限(只有一堆类和没有一致性的调用),我发现这几乎是不可能的.我试过只调用scrollBy,但这不起作用.
如果有人有任何关于如何进行的指示,将非常感激.
我正在努力做一个简单的画家.它看起来像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)