用 Java class Android 画一条线

Draw a Line with a Java class Android

我是 Android(Java) 的新手。 我想用这个画一条线:

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);

有什么问题?

谢谢!

亲切的问候

丹尼尔

画一条线然后用这段代码简单地画线

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);
        }

    }
}

你不能像你想做的那样去做。基本上在 android 中,每个视图即按钮或图像或 EditText 都在 xml 文件中定义,这些文件将连接到您的 java 文件(您也可以在 java 文件中定义视图).在您的情况下,如果您想画一条线,例如将线视为图像。你可以像下面那样做。

1) 首先创建一个 class 扩展 ImageView 并覆盖 onDraw() 方法。

2) 然后在 xml 文件中定义视图

Java class

 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);

}
}

希望这对您有所帮助。谢谢