以编程方式在现有布局的顶部绘制一条线

时间:2014-12-06 21:28:06

标签: android

我有一个现有的布局,我正在设置我当前的活动。但是,我想画一条线(水平)并以慢动作向下移动。大多数文章都谈到创建自定义视图和执行 setContentView(myView)。

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

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

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

谢谢

2 个答案:

答案 0 :(得分:1)

创建一个视图,然后为其设置动画。

<View
 android:id="+@id/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以匹配您希望线路移动到的位置。以及匹配您希望线移动速度的持续时间。

答案 1 :(得分: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