android 随手指移动划线

来源:互联网 发布:金十数据原油点评 编辑:程序博客网 时间:2024/05/18 09:12

自定义view

package com.example.myview;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;public class DrawView extends View {private int x_begin;private int y_begin;private int x_end;private int y_end;private Canvas can = null;private Bitmap bit;public DrawView(Context  context){super(context);//this.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT));//invalidate();bit =  Bitmap.createBitmap(880,480,Config.ARGB_8888);can = new Canvas();can.setBitmap(bit);}public DrawView(Context context,AttributeSet attribute){super(context,attribute);bit =  Bitmap.createBitmap(481,880,Config.ARGB_8888);can = new Canvas();can.setBitmap(bit);}public void onDraw(Canvas canvas){super.onDraw(canvas);canvas.drawBitmap(bit, 0, 0,null);   //canvas.drawCircle(x, y, 15, p); //   canvas.drawLine(x_begin, y_begin, x_end, y_end, p);}public boolean  onTouchEvent(MotionEvent event){if(event.getAction()==MotionEvent.ACTION_DOWN){      x_begin = (int) event.getX();      y_begin = (int) event.getY();}if(event.getAction() == MotionEvent.ACTION_MOVE){x_end = (int)event.getX();y_end = (int)event.getY();Paint p = new Paint();p.setColor(Color.RED);can.drawLine(x_begin, y_begin, x_end, y_end, p);invalidate();x_begin = x_end;y_begin = y_end;        }return true;}}

2  xml布局

<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=".MainActivity" >                        <com.example.myview.DrawView             android:id = "@+id/myview"            android:layout_width="match_parent"            android:layout_height="match_parent"/>  </RelativeLayout>


0 0
原创粉丝点击