2012-04-12 75 views
0

我总是对此感到困惑,因此我需要一个关于如何去做的指针。如果创建一个包含多个imagesview和文本视图的xml布局。并且让我们说我想在两个图像之间画线并沿着这条线移动一个图像。我如何画这条线?我知道我可以得到两个图像视图的位置,所以我有x1,y1和x2,y2。我的问题是绘画。在屏幕上绘图,我需要表面视图吗?

我是否需要表面视图来获得图形功能并在屏幕上加载位图?

如果是的话,那么我想我应该总是表面看来填充屏幕和顶部的意见只需要我需要绘制哪些似乎有点不对?

如果没有(我希望这就是答案),那么我该如何绘制线条,或仅使用X,Y值在屏幕上加载位图?

我希望我能够解释一下我的困惑 感谢

编辑:其实我的吼声更好地解释我的困惑的一种方式。 当你创建一个XML布局的活动,您有什么样

onCreate(){ 
setContentView(R.id.layout) 
} 

,但是当你有图纸观活动您有类似

onCreate(){ 
SurfaceView v = new Surfaceview(this); 
setContentView(v) 
} 

我的问题是,我们必须设置内容布局无论是xml布局还是绘图区域。如果我想将其设置为我的xml布局,同时我可以在屏幕上的任意位置绘制(在图像视图,空白区域,TextViews ..等等)上怎么办?

查看我的问题?

回答

0

这取决于你想要的结果是什么以及你需要多少灵活性。你可以看看这个android Animations tutorial(该网站在发布时已关闭,但谷歌已将其缓存)。

如果您不需要灵活性,那么对于您的生产线,您可能可以在xml中创建View,填充颜色为android:background,尺寸使其看起来像您希望的那样。然后,您可以在位图的ImageView上使用Animation将其翻译为一行,并根据需要在Animation上使用侦听器来显示/隐藏各种Views

如果您需要灵活性,SurfaceView可能是您最好的选择。

+0

谢谢你的回答。是的,我对动画很熟悉,也知道我是如何实现自己想要的。但是当我习惯在java SDK中编写代码时,我会有一个while循环并在重要的位置重新绘制图像。我看到我不能在这里没有表面视图。不过,表面视图似乎告诉我:“无论是我还是XML布局”。这是因为setcontentview只需要一个参数 – Snake 2012-04-13 05:05:23

+0

如果您告诉它将从点A转换到点B,Android的'Animation'类将为您重绘。 – 2012-04-13 14:34:11