爱玺玺

爱玺玺的生活日记本。wx:lb87626

android画画板

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>


发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5