2011-03-02 205 views
0

我發現了一些線條畫的代碼,但它不起作用。任何一個可以幫助我在android中繪製一條線?如何在android中繪製一條線?

這裏是我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/layoutmain"> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
/> 
</LinearLayout> 

這裏是我的代碼類:

public class DrawPoints extends Activity implements OnTouchListener { 
    static int i = 0; 
    static float static_x = 0; 
    static float static_y = 0; 
    static float static_x1 = 0; 
    static float static_y1 = 0; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     View topLayout = this.findViewById(R.id.layoutmain); 
     // register for events for the view, previously 
     topLayout.setOnTouchListener((OnTouchListener) this); 
    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     String tag = null; 

     if (i == 0) { 
      static_x = event.getX(); 
      static_y = event.getY(); 
      i = 1; 
     } else { 
      static_x1 = event.getX(); 
      static_y1 = event.getY(); 

     } 

     if (i == 1) { 
      Paint p = new Paint(); 
      p.setColor(Color.WHITE); 
      p.setStyle(Paint.Style.STROKE); 
      Canvas canvas = new Canvas(); 
      canvas.drawColor(Color.BLUE); 

      canvas.drawLine(static_x, static_y, static_x1, static_y1, p); 
      i = 0; 
     } 
     return false; 
    } 

} 
+0

還可以參考本示例,其是2D圖形的演示:[Android的2D圖形演示](http://marakana.com/tutorials/android/2d-graphics-example.html) – Maverick 2011-11-22 04:52:02

回答

14

你可以簡單地在你的XML佈局這樣寫:

<View 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" 
    android:background="#cccccc" 
    android:paddingTop="20dp" /> 

這將創建一個水平線。

+0

好的,你把這個視圖,但我不需要這個,因爲你可以看到我想畫線的任何點,當你用戶觸摸屏幕的兩點時,一條直線將畫在帆布或任何視圖。 – Herry 2011-05-13 05:16:48

+0

謝謝...我真的很想這 – 2013-11-15 13:39:11

+0

這是一些邪惡的側面思考 – user1301428 2016-03-14 08:22:42

2

這是我的小把戲解決方案與penchoco解決方案相比可提高繪圖性能快於163倍

<View 
    android:id="@+id/line" 
    android:layout_width="fill_parent" 
    android:layout_height="1px" 
    android:background="@drawable/ic_line" 
</View> 

penchoco解決方案的唯一區別的是使用9 patchClick here to download 9 patch image繪製的1x1像素而不是顏色。

android:background="@drawable/ic_line" 

問: 任何人都可以解釋爲什麼使用9修補圖像性能提升超過163倍,落後情況下,使一個神奇的結果是實現?

由於

+1

對於你的問題的更多答案,你可以問這個新的問題。通過這種方式,其他人也可以看到這個問題。 – Herry 2012-05-07 04:58:32