2014-12-06 31 views
0

我有一个现有布局,我正在将其当前活动设置为。但是,我想绘制一条线(水平线)并以慢动作将其向下移动。大多数文章谈论创建自定义视图和做 setContentView(myView)。以编程方式在现有布局的顶部绘制一条线

我怎么不想将我的活动视图设置为仅此视图。我已经做了setContentView(R.layout.main)。而我只想在移动的内容上画线。

类似于drawLine(fromX,fromY,toX,toY),然后添加一个循环,同时增加Y以显示它在运动中。

我希望我很清楚。请指点我正确的方向。

谢谢

+0

对于我会用画布和颜料。为了使用它,[参考这个问题] [1]。 [1]:http://stackoverflow.com/questions/3616676/how-to-draw-a-line-in-android – AggieDev 2014-12-06 21:45:05

+0

如果你看到我的问题,我说的是大多数人告诉你将活动设置为自定义视图。我不想将它设置为查看。 Howcan获取根布局的画布 – Snake 2014-12-07 05:24:34

+0

我所做的是创建了一个扩展View的类,例如PaintView扩展了View,然后将其添加到活动布局的xml中。 – AggieDev 2014-12-07 19:31:17

回答

0

做到这一点的最好方法是创建一个视图,该视图占用您想要在上面绘制的整个容器。没有背景是必要的,因为它只是用来创建一个画布。一个例子是这样的:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <com.packagename.PaintView 
     android:id="@+id/paintView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</FrameLayout> 

而且PaintView将是一个public class PaintView extends View

+0

非常感谢您的解决方案 – Snake 2014-12-09 02:37:24

+0

我无法得到它的工作。我创建了您在此处链接的'DrawView.java',并将其添加到xml,就像您在上面所做的一样。我错过了什么?顺便说一句,我正在使用'RelativeLayout' – ThisGuy 2015-04-18 05:59:16

1

创建一个视图,然后为它设置动画效果。

<View 
android:id="[email protected]/ivHorizontalLine" 
android:layout_width="match_parent" 
android:layout_height="1px" 
android:background="#000000" /> 

更改视图的高度以匹配想要的线条的粗细。以及线条颜色的背景颜色。

TranslateAnimation horizontalLineAnimation = new TranslateAnimation(0, 0, YstartPoint, YendPoint); 
horizontalLineAnimation.setDuration(duration); 

ivHorizontalLine.startAnimation(horizontalLineAnimation); 

更改YstartPoint和YendPoint以匹配您希望线路从中移动到的位置。和持续时间以匹配你希望线路移动的速度。

+0

谢谢......我不想动画。因为我想在某个区域画线。动画临时移动线和原始x,y保持线的坐标 – Snake 2014-12-07 05:26:47

相关问题