//先写一个自定义view
//布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/add_btn"
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="添加"/>
<EditText
android:id="@+id/x_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:layout_weight="2"
android:hint="x坐标"/>
<EditText
android:id="@+id/y_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:layout_weight="2"
android:hint="y坐标"/>
</LinearLayout>
<com.example.liushi.Liushi
android:id="@+id/lineView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
//自定义的activy
package com.example.liushi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
/**
-
@Author:x
-
@E-mail:
-
@Date:2019/4/24 20:01
-
@Description:描述信息
*/
public class Liushi extends View {private Paint mLinePaint;
private final static int textSize=40;
private Path mPath;
private final static int startX = 100;
private final static int startY = 800;public Liushi(Context context) {
super(context);
}public Liushi(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}public Liushi(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}private void init() {
mLinePaint = new Paint();
mLinePaint.setStyle(Paint.Style.STROKE);
mLinePaint.setTextSize(textSize);
mLinePaint.setStrokeWidth(5);
mPath = new Path();
mPath.moveTo(startX,startY);
}@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(mPath,mLinePaint);canvas.drawLine(startX,startY,800,startY,mLinePaint);//画x轴 canvas.drawLine(startX,startY,startX,100,mLinePaint);//画Y轴 canvas.drawText("0",100-mLinePaint.measureText("0")-20,800+textSize,mLinePaint); for (int i = 100; i <= 600; i+=100) { String text = i+""; float textWidth = mLinePaint.measureText(text); canvas.drawText(text,startX+i-textWidth/2,startY+textSize,mLinePaint); canvas.drawText(text,startX-textWidth,startY-i+textSize/2,mLinePaint); } canvas.drawCircle(150,150,200,mLinePaint);
}
public void addPoi(int x, int y) {
mPath.lineTo(startX+x,startY-y); invalidate();
}
}
///mainactivy
package com.example.liushi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText xEdit;
private EditText yEdit;
private Liushi lineView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.add_btn).setOnClickListener(this);
xEdit = findViewById(R.id.x_edit);
yEdit = findViewById(R.id.y_edit);
lineView = findViewById(R.id.lineView);
}
@Override
public void onClick(View v) {
int x = Integer.parseInt(xEdit.getText().toString());
int y = Integer.parseInt(yEdit.getText().toString());
lineView.addPoi(x,y);
}
}