版权声明:本文为博主原创文章,未经博主允许不得转载。
public class MainActivity extends Activity implements OnTouchListener, OnClickListener {
private ImageView mIv;
private float startX;
private float startY;
private Canvas canvas;
private Paint paint;
private Bitmap newBitmap;
private ImageView mBlue;
private ImageView mGreen;
private ImageView mRad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
mIv = (ImageView) findViewById(R.id.show_iv);
mIv.setOnTouchListener(this);
mRad = (ImageView) findViewById(R.id.red);
mBlue = (ImageView) findViewById(R.id.blue);
mGreen = (ImageView) findViewById(R.id.green);
mRad.setOnClickListener(this);
mGreen.setOnClickListener(this);
mBlue.setOnClickListener(this);
//初始化画图工具
initPaint();
}
private void initPaint() {
//获取系统的窗口管理
WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);
//获取屏幕的显示服务
Display display = manager.getDefaultDisplay();
int width=display.getWidth();
int height=display.getHeight();
paint = new Paint();
//设置画笔的大小
paint.setStrokeWidth(5);
newBitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
canvas = new Canvas(newBitmap);
//设置背景颜色
canvas.drawColor(Color.WHITE);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// 获取事件类型
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//下压,获取坐标
startX = event.getRawX();
startY = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
//移动,获取坐标,
float stopX = event.getRawX();
float stopY = event.getRawY();
//画线
canvas.drawLine(startX, startY, stopX, stopY, paint);
//把当前结束的坐标赋给开始坐标
startX=stopX;
startY=stopY;
//在设备上开始显示出来
mIv.setImageBitmap(newBitmap);
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.red:
paint.setColor(0xFFFF0000);
break;
case R.id.green:
paint.setColor(0xFF00FF00);
break;
case R.id.blue:
paint.setColor(0xFF0000FF);
break;
}
}
public void save(View view) throws FileNotFoundException{
OutputStream stream=openFileOutput("绘图板.png", MODE_PRIVATE);
newBitmap.compress(CompressFormat.PNG, 50, stream);
}
}