2016-03-22 6 views
0

Android(Java)が初めてです。 私はこれでラインを描きたい:Javaクラスを使用して線を描くAndroid

paint.setColorが動作しているが、その行を描画しませ
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); 
    } 

コール:

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

Canvasはどのように表示できますか? –

+0

この例のように、ビューの 'onDraw'をovverrideする必要があります: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

線を引くために、このコードを使用して、行を描きます。基本的にはすべてのビュー、つまりボタンや画像、またはEditTextはJavaファイルに配線されるxmlファイルで定義されます(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

私は1分でコードをアップロードします – Jois

関連する問題