Android 画布画线,android用canvas画直线测试实例

画板基类继承view

package com.mytest.myapplication.Utility;

import android.graphics.Color;

import android.view.View;

import android.content.Context;

import android.content.res.Resources;

import android.graphics.Canvas;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.graphics.Path;

import android.graphics.Point;

import android.util.AttributeSet;

import android.util.DisplayMetrics;

import android.view.WindowManager;

import android.widget.Button;

import java.util.ArrayList;

//自定义简单曲线图

public class MyGraphicView extends View{

public Context _Context;

private Paint _mPaint;

public String _type="0";

// private Resources _res;

// private DisplayMetrics _dm;

/**

* 曲线上总点数

/

private float[] mPoints={0,0,10,10,20,20,30,30,};

/*

* 纵坐标值

/

private ArrayList yRawData;

/*

* 横坐标值

*/

private ArrayList xRawDatas;

public MyGraphicView(Context context)

{

this(context, null);

}

public MyGraphicView(Context context, AttributeSet attrs)

{

super(context, attrs);

this._Context = context;

initView();

}

private void initView()//初始化

{

//this._res = _Context.getResources();

this._mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

// _dm = new DisplayMetrics();

// WindowManager wm = (WindowManager) _Context.getSystemService(Context.WINDOW_SERVICE);

// wm.getDefaultDisplay().getMetrics(_dm);

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh)//尺寸改变事件

{

super.onSizeChanged(w,h,oldw,oldh);

}

@Override

protected void onDraw(Canvas canvas)

{

_mPaint.setColor(Color.BLUE);//颜色赋值

if(_type=="0") {

canvas.drawLine(0, 100, getWidth(), getHeight(), _mPaint);

// super.onDraw(canvas);

}

else

{

canvas.drawLines(mPoints, _mPaint);

}

}

public void Redraw(String type)//重绘触发

{

_type=type;

invalidate();//重绘触发事件

}

}

画线活动页

package com.mytest.myapplication;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.LinearLayout;

import com.mytest.myapplication.Utility.MyGraphicView;

public class MyDrawActivity extends AppCompatActivity {

MyGraphicView graphicView;

public Button button1;

public Button button2;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

final LinearLayout layout = new LinearLayout(this);

graphicView=new MyGraphicView(this,null);

button1=new Button(this);

button2=new Button(this);

button1.setText(“按钮1”);

button2.setText(“按钮2”);

layout.addView(button1);

layout.addView(button2);

layout.addView(graphicView);

setContentView(layout);

button1.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

graphicView. Redraw("0");//重绘触发

}

});

button2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

graphicView. Redraw("1");//重绘触发

}

});

}

}

调用活动页

Button.OnClickListener listener5 = new Button.OnClickListener() {

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this,MyDrawActivity.class);

startActivity(intent);

MainActivity.this.finish();

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值