2014-12-06 63 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