2011-01-28 148 views
1

我正在为平板电脑创建绘图应用程序,并且对如何最好地处理画布方向更改的绘图画布感兴趣。绘图程序跟踪用户输入并将它们存储为矢量,由X,Y坐标固定。Android:在画布上绘图和旋转

该问题与纵向/横向模式下X,Y的大小不同有关。如果用户具有填充屏幕的画布(减去通知和标题栏),并且在纵向模式下绘制在画布底部附近(例如在320x480屏幕上的点140,460处),则当屏幕翻转到横向并从我存储的X,Y向量,140,460点现在超出了屏幕的范围(因为屏幕现在是480x320)。同样,如果他们在靠近屏幕右侧边缘的景观中绘制点并将其翻转回肖像,则这些点将超出范围。

我环顾四周,看到解决这个问题的方法,显而易见的方法是将屏幕锁定到特定的方向。我从市场上下载的一些绘图应用程序以这种方式处理它。

正如我设计这一个平板电脑,我想给用户的灵活性绘制自己喜欢,又保持一定的理智,当涉及到屏幕范围等

想法,我“VE不得不/尝试包括:

  • 锁定到一个特定的方向 - 好吧,但我不喜欢强迫用户一定偏好
  • 锁定到特定的方向,隐藏标题和通知栏,因此用户只需提出一个大的空白画布,他们可以使用他们所希望的 - 但讨厌通知栏是H. idden

我想过隐藏标题栏,显示通知,允许方向变化,那么如果屏幕旋转为横向,旋转画布回肖像的可能性,但是,当从导航栏动作会是什么在景观的右边是纵向的,但我仍然得到相同的X,Y边界问题,只是到了更小的程度(有效地通知栏的宽度)。

有关此解决方案的任何想法?

谢谢。

回答

0

实施滚动/平移,并让绘图曲面任意大于父视图的尺寸。那么,无论设备是纵向还是横向都无所谓。您只需将视图作为绘图表面特定部分的窗口。

+0

有趣...任何指针如何创建任意大小的画布(在我的情况下,画布是在framelayout内)? – 2011-01-28 20:12:19