package com.example.paintborad;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class MainActivity extends ActionBarActivity {
private ImageView iv;
private Bitmap bitmap2;
private Canvas canvas;
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
// 获取原图背景
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.bg);
bitmap2 = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), bitmap.getConfig());
paint = new Paint();
canvas = new Canvas(bitmap2);
// 开始作画,canvas上面才可以画
canvas.drawBitmap(bitmap, new Matrix(), paint);// 在canvas画了个bitmap(背景图片)
canvas.drawLine(10, 20, 60, 100, paint);// 在canvas画了个线
iv.setImageBitmap(bitmap2);
// 给控件iv一个触摸事件
iv.setOnTouchListener(new OnTouchListener() {
int startX=0;
int startY=0;
@Override
public boolean onTouch(View v, MotionEvent event) {
// 获取事件类型
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
System.out.println("按下");
//获取按下位置
startX=(int) event.getX();
startY=(int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
System.out.println("移动");
//获取移动点位置
int stopX=(int) event.getX();
int stopY=(int) event.getY();
canvas.drawLine(startX, startY, stopX, stopY, paint);
iv.setImageBitmap(bitmap2);
//更新开始位置
startX=stopX;
startY=stopY;
break;
case MotionEvent.ACTION_UP:
System.out.println("抬起");
break;
}
//Returns:
//True if the listener has consumed the event, false otherwise.
return true;//这里必须是true
}
});
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.paintborad.MainActivity" >
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>