开发者

How to draw a line in android?

开发者 https://www.devze.com 2023-02-14 20:16 出处:网络
I found some code for line drawing but it doesn\'t work. Can any one help me to draw a line in android?

I found some code for line drawing but it doesn't work. Can any one help me to draw a line in android?

here is my 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>

here is my code for class:

 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(savedInstan开发者_StackOverflow社区ceState);
         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;
     }

 }


You can simply write this in your xml layout:

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

This will create a horizontal line.


This is my solution with little trick, that improve Draw performance faster than 163 times when compare with penchoco solution:

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

The only difference thing with penchoco solution is used 9 patch

How to draw a line in android?

drawable 1x1 pixel instead of color.

android:background="@drawable/ic_line"

Question: Could anyone explain why using 9 patch image performance was improve more than 163 times, which implement behind scenario that make a magic result ?

Thanks


You can refer to this code provided in Android Samples.

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FingerPaint.html

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号