如何在android中画一条线?

时间:2011-03-02 10:56:38

标签: 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;
     }

 }

3 个答案:

答案 0 :(得分:14)

您可以在xml布局中简单地写一下:

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

这将创建一条水平线。

答案 1 :(得分: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 patch Click here to download 9 patch image可绘制的1x1像素而不是颜色。

android:background="@drawable/ic_line"

<强>问题: 任何人都可以解释为什么使用9个补丁图像的性能提高了163倍以上,这背后的场景实现了一个神奇的结果?

由于

答案 2 :(得分:0)