任何内置的Android函数来包装Canvas绘图?

问题描述 投票:1回答:3

我正在使用Canvas绘制Bitmap。

考虑这是我的位图(点只是空格,x标记点):

........
......x.
........
........
........

如果我画这个盒子:

###
###
###

x开始,我会得到这个:

........
......##(#)
......##(#)
......##(#)
........

但是我希望在最左边绘制那些“漏洞”的#s,好像这个位图被包裹了一样。像吃豆人一样。

所以基本上,我想要的是指示Canvas不要在(x, y)但是(x % width, y % height)绘制像素的某种方式。有任何简单的方法来实现这一目

另一个例子,假设我想从(宽度 - 1,高度 - 1)开始绘制相同的3x3盒子/方块,然后我想得到这个:

##.....#
##.....#
........
........
##.....#
android android-canvas repeat android-bitmap
3个回答
0
投票

据我所知,从文档中可以看出,没有内置函数可以让你实现你想要的东西。由于您直接处理画布对象,因此假设应用程序将处理所有像素级别的绘图信息。

就像你提到的那样,在应用程序中有不止一种方法可以做到这一点,但不幸的是没有开箱即用的方法。


0
投票

你不能用

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

x=metrics.heightPixels;
y=metrics.widthPixels;

  u=bitmap.getWidth();
  v=bitmap.getHeight();

您可以从这四个数字中轻松找出应该绘制框的数字。

回答您的编辑:如果方块的一部分偏离屏幕右侧xx,则在xx位置的屏幕上绘制它。如果它在xx的左侧,则在screenWidth-xx位置绘制它。

如果屏幕“移动”,即你可以在屏幕上滚动,那么你将不得不多做一点。


0
投票

我认为你不能把同一张图片包起来。你可以做的是当右边的一个图像离开屏幕时,向左插入第二个图像。

所以,例如..让图像为4x4单位。如果它以1个单位离开屏幕(右侧),则右侧可见3x4,左侧可看到1x4(新图像)。同样的方法可以解决顶部和底部问题。

© www.soinside.com 2019 - 2024. All rights reserved.