千家信息网

Android Studio怎么实现简单绘图板

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇"Android Studio怎么实现简单绘图板"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2026年10月31日Android Studio怎么实现简单绘图板

这篇"Android Studio怎么实现简单绘图板"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Android Studio怎么实现简单绘图板"文章吧。

目的

设计一个手绘图形的画板

工具及环境

使用java语言,在Android studio平台上进行开发

功能设计

实现一个可以绘图的画板,界面有相关的选择按钮。可以根据按钮切换画笔的颜色,刷子可以加粗画笔的线条大小,橡皮可以用于抹除已经绘制的图案,清屏可实现清屏重置画板

设计思路

首先设计界面,然后设计按钮点击功能。橡皮擦的功能可通过把画笔颜色设置与背景颜色一致来实现,清屏功能可通过背景重置覆盖原背景实现

代码

activity_main.xml

                

HandWrite.java

package com.xdw.exercise; import android.content.Context;import android.graphics.*;import android.graphics.Paint.Style;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View; public class HandWrite extends View{    Paint paint = null;    Bitmap originalBitmap = null;    Bitmap new1_Bitmap = null;    Bitmap new2_Bitmap = null;    float startX = 0,startY = 0;    float clickX = 0,clickY = 0;    boolean isMove = true;    boolean isClear = false;    int color=Color.BLUE;    float strokeWidth=10.0f;    public HandWrite(Context context, AttributeSet attrs)    {        super(context, attrs);        originalBitmap = BitmapFactory                .decodeResource(getResources(), R.drawable.iv).copy(Bitmap.Config.ARGB_8888,true);        new1_Bitmap = Bitmap.createBitmap(originalBitmap);    }    public void clear(){        isClear = true;        new2_Bitmap = Bitmap.createBitmap(originalBitmap);        invalidate();    }     public void red(){        isClear=false;        color=Color.RED;    }     public void blue(){        isClear=false;        color=Color.BLUE;    }    public void brush(){        strokeWidth=20.0f;    }    public void eraser(){        color=Color.WHITE;        strokeWidth=80.0f;    }     @Override    protected void onDraw(Canvas canvas)    {        super.onDraw(canvas);        canvas.drawBitmap(HandWriting(new1_Bitmap), 0, 0,null);    }    public Bitmap HandWriting(Bitmap o_Bitmap)    {        Canvas canvas = null;        if(isClear) {        canvas = new Canvas(new2_Bitmap);    }       else{        canvas = new Canvas(o_Bitmap);    }        paint = new Paint();        paint.setStyle(Style.STROKE);        paint.setAntiAlias(true);        paint.setColor(color);        paint.setStrokeWidth(strokeWidth);        if(isMove)        {            canvas.drawLine(startX, startY, clickX, clickY, paint);        }        startX = clickX;        startY = clickY;        if(isClear)        {            return new2_Bitmap;        }        return o_Bitmap;    }      @Override    public boolean onTouchEvent(MotionEvent event)    {        clickX = event.getX();        clickY = event.getY();        if(event.getAction() == MotionEvent.ACTION_DOWN)        {            isMove = false;            invalidate();            return true;        }        else if(event.getAction() == MotionEvent.ACTION_MOVE)        {            isMove = true;            invalidate();            return true;        }        return super.onTouchEvent(event);    }}

MainActivity.java

package com.xdw.exercise; import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button; public class MainActivity extends Activity {    private HandWrite handWrite = null;    Button red,blue,clear,brush,eraser;     @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        handWrite = (HandWrite) findViewById(R.id.handwriteview);        red =(Button)findViewById(R.id.red);        blue=(Button)findViewById(R.id.blue);        clear = (Button) findViewById(R.id.clear);        brush=(Button)findViewById(R.id.brush);        eraser=(Button)findViewById(R.id.eraser);        clear.setOnClickListener(new cClick());        red.setOnClickListener(new rClick());        blue.setOnClickListener(new bClick());        brush.setOnClickListener(new brClick());        eraser.setOnClickListener(new eClick());     }      class cClick implements OnClickListener {        public void onClick(View v) {            handWrite.clear();        }    }    class rClick implements OnClickListener {        public void onClick(View v) {            handWrite.red();        }    }    class bClick implements OnClickListener {        public void onClick(View v) {            handWrite.blue();        }    }    class brClick implements OnClickListener {        public void onClick(View v) {            handWrite.brush();        }    }    class eClick implements OnClickListener {        public void onClick(View v) {            handWrite.eraser();        }    }}

效果显示:

以上就是关于"Android Studio怎么实现简单绘图板"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

内容 设计 绘图 功能 绘图板 按钮 画板 画笔 背景 颜色 文章 橡皮 界面 知识 篇文章 可通 一致 代码 价值 刷子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 河南真二互联网科技有限公司 没上市的科技互联网公司 凡科互联网科技 九亚互联网科技 海南购全球互联网科技 衡水科技产业互联网平台 互联网汽车科技小镇 西藏七维空间互联网科技有限公司 宜昌元轩互联网科技有限公司 互联网公司黑科技创始人 佛山市翊博互联网络科技有限公司 高科技互联网发展前景如何 工业互联网等科技实现智能化赋能 工业互联网展湾科技股份有限公司 上海科技产业互联网平台 新氧科技和美国互联网有关系吗 上海同邻互联网科技有限公司规模 深圳互联网科技园地址 武汉亿视互联网科技有限公司 互联网与科技金融数据 致聘互联网科技 成都狮子座互联网科技 互联网 科技服务平台 互联网科技生活的内容 顶级互联网科技成果有哪些 苏州铭阳互联网科技有限公司 长沙互联网科技 上海创道互联网络科技有限公司 互联网科技手抄报图片
0