Android实现画板、写字板功能(附源码下载)

发布时间 - 2026-01-10 22:46:56    点击率:

前言

本文给大家分享一个使用Android开发写字板功能Dem、简单操作内存中的图像、对图像进行简单的处理、绘制直线、以达到写字板的效果

效果图如下

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="com.tomes.paint.MainActivity" >

 <ImageView 
  android:id="@ id/iv_drawingBoard"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/bg"/>

</RelativeLayout>

Java代码

public void init() {
 Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
   R.drawable.bg);
 copyBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
 paint = new Paint();
 canvas = new Canvas(copyBitmap);
 Matrix matrix=new Matrix();
 canvas.drawBitmap(bitmap, matrix, paint);

 imageView = (ImageView) findViewById(R.id.iv_drawingBoard);

 imageView.setImageBitmap(copyBitmap);
 
 imageView.setOnTouchListener(new OnTouchListener() {

  @SuppressLint("ClickableViewAccessibility")
  @Override
  public boolean onTouch(View v, MotionEvent event) {
   int action = event.getAction();
   switch (action) {
   case MotionEvent.ACTION_DOWN:
     startX=event.getX();
     startY=event.getY();
    break;
   case MotionEvent.ACTION_MOVE:
    float currentX=event.getX();
    float currentY=event.getY();
    canvas.drawLine(startX, startY, currentX, currentY, paint);
    imageView.setImageBitmap(copyBitmap);
    startX=currentX;
    startY=currentY;
    
    break;
   case MotionEvent.ACTION_UP:

    break;

   }
   return true;
  }
 });

}

源码下载:点击这里

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如果有疑问大家可以留言交流。


# android  # 画板功能实现  # 画板实现  # 写字板源码  # android实现简单的画画板实例代码  # Android自定义SurfaceView实现画板功能  # Android采用双缓冲技术实现画板  # Android画板开发之添加背景和保存画板内容为图片  # Android画板开发之橡皮擦功能  # Android实现画画板案例  # Android编程实现画板功能的方法总结【附源码下载】  # Android画板开发之撤销反撤销功能  # Android多媒体之画画板开发案例分享  # Android自定义View实现简易画板功能  # 写字板  # 点击这里  # 给大家  # 这篇文章  # 源码下载  # 以达到  # 有疑问  # paddingRight  # activity_horizontal_margin  # paddingTop  # tomes  # context  # paddingLeft  # paddingBottom  # layout_height  # match_parent  # activity_vertical_margin  # dimen  # paint  # drawable 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解Android图表 MPAndroidChart折线图  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  装修招标网站设计制作流程,装修招标流程?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  JavaScript如何实现路由_前端路由原理是什么  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  详解MySQL数据库的安装与密码配置  实例解析angularjs的filter过滤器  nodejs redis 发布订阅机制封装实现方法及实例代码  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Android使用GridView实现日历的简单功能  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何有效防御Web建站篡改攻击?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  制作企业网站建设方案,怎样建设一个公司网站?  无锡营销型网站制作公司,无锡网选车牌流程?  如何快速搭建高效可靠的建站解决方案?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  浅谈redis在项目中的应用  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  北京的网站制作公司有哪些,哪个视频网站最好?  简单实现Android验证码  浅谈Javascript中的Label语句  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  网站制作软件免费下载安装,有哪些免费下载的软件网站?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel如何配置任务调度?(Cron Job示例)  *服务器网站为何频现安全漏洞?  如何确保西部建站助手FTP传输的安全性?  JS中对数组元素进行增删改移的方法总结  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何快速辨别茅台真假?关键步骤解析