android之简易绘图板

来源:互联网 发布:南京银行上海分行知乎 编辑:程序博客网 时间:2024/05/22 03:12

最近时间比较多,开始学一些android程序。写得不好请多多包涵哈。


这个程序也是参照了网上的一些代码写出来的,并加以简化。

因为程序比较简单,暂时没使用双缓冲技术。实测效果还不错


程序说明:

Canvas -- 相当于画布,图片的所有内容都显示在上面

Paint -- 相当于画笔,本程序设计的画笔是:红色,粗细为5

Path -- 相当于画图的路径


程序代码:

main.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <com.example.testandroid.DrawView        android:id="@+id/draw_view"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true" />    <Button        android:id="@+id/btn_clear"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:onClick="btn_clear"        android:text="@string/btn_clear" /></RelativeLayout>


MainActivity.java:

package com.example.testandroid;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}public void btn_clear(View v) {DrawView draw_view = (DrawView) findViewById (R.id.draw_view);draw_view.clear();}}


DrawView.java:

package com.example.testandroid;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class DrawView extends View {private Paint paint;private Path path;public DrawView(Context context, AttributeSet set) {super(context, set);// 创建画笔paint = new Paint();// 画笔颜色paint.setColor(Color.RED);// 画笔粗细paint.setStrokeWidth(5);// 抗锯齿paint.setAntiAlias(true);// 描边,不填充        <span style="white-space:pre"></span>paint.setStyle(Paint.Style.STROKE);        <span style="white-space:pre"></span>// 创建path,即绘制路径path = new Path();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawPath(path, paint);}@Overridepublic boolean onTouchEvent(MotionEvent event) {float currentX = event.getX();float currentY = event.getY();switch (event.getAction()) {case MotionEvent.ACTION_DOWN : {// 画线函数,移动到点(currentX, currentY)path.moveTo(currentX, currentY);break;}case MotionEvent.ACTION_MOVE : {// 画线函数,连线到点(currentX, currentY)path.lineTo(currentX, currentY);break;}case MotionEvent.ACTION_UP : {//path.reset();break;}}// 刷新界面,调用onDraw()invalidate();// true表明该事件已经处理完毕,不能返回super.onTouchEvent(event)return true;}// 清屏public void clear() {// 清除绘制路径path.reset();// 刷新界面invalidate();}}


图片就不贴了,画的比较难看哈

程序下载地址:http://download.csdn.net/detail/fzzjj2008/8403519

0 0
原创粉丝点击