2016-03-22 28 views
0

我是Android(Java)的新手。 我想提請本A線:用Java類畫一條線Android

public void drawAline(int x1,int y1, int x2, int y2){ 
     Canvas canvas=new Canvas(); 
     paint.setColor(Color.BLACK); 
     canvas.drawLine(x1,y1,x2,y2,paint); 
    } 

paint.setColor是工作,但它不是畫線:

電話:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     drawView = new DrawView(this); 
     drawView.setBackgroundColor(Color.RED); 
     drawView.drawAline(0,10,1000,10); 

     setContentView(drawView); 

問題是什麼?

謝謝!

親切的問候

丹尼爾

+1

'drawAline'創建一個'Canvas'並將其畫出,但Canvas在哪裏顯示? – Berger

+0

如何顯示畫布? –

+0

你必須在你的視圖中使用'onDraw',就像在這個例子中一樣:http://stackoverflow.com/questions/26727753/how-to-save-canvas-drawing-and-display-it-when-the-按鈕被點擊 – Berger

回答

2

然後畫一條線使用此代碼繪製線條簡單

public class MainActivity extends Activity { 

DrawLine drawLine; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    drawLine = new DrawLine(this); 

    drawLine.setBackgroundColor(Color.CYAN); 

    setContentView(drawLine); 
    } 

    class DrawLine extends View { 
     Paint paint = new Paint(); 
     public DrawLine(Context context) { 
      super(context); 
      paint.setColor(Color.BLACK); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      canvas.drawLine(50, 100, 600, 600, paint); 
      canvas.drawLine(50, 550, 770, 0, paint); 
     } 

    } 
} 
2

你不能做到像你正在嘗試做的。基本上在android中,每個視圖(即按鈕或圖像或EditText都在xml文件中定義,這些文件將連接到您的java文件(您也可以在java文件中定義視圖)。在你的情況下,如果你想繪製一條線,例如把線看作一個圖像。你可以像下面這樣做。

1)首先創建一個擴展ImageView並覆蓋onDraw()方法的類。

2)然後在XML文件中

Java類

package com.stack.line; 
    public class CustomView extends View { 
     Paint paint = new Paint(); 
     public CustomImageView(Context context) { 
      super(context); 
       paint.setAntiAlias(true); 
      paint.setColor(Color.RED); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      canvas.drawLine(10, 100, 150, 300, paint); 

     } 

    } 

custom_view.xml文件定義視圖

<LinearLayout 

    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 



    > 

<com.stack.line.CustomView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/custom" 

    /> 

</LinearLayout> 

MainActivity.java

public class MainActivity extends Activity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.custom_view); 

} 
} 

希望這有幫助。 ThankYou

+0

我會在一分鐘內上傳代碼 – Jois