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

 更新时间:2017年01月24日 14:14:16   投稿:daisy  
这篇文章主要介绍了Android实现画板、写字板功能的方法,文中给出了简单的介绍和示例代码,想要了解更多的朋友可以下载源码进行学习,感兴趣的朋友们下面来一起看看吧。

前言

本文给大家分享一个使用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 Canvas绘制文字横纵向对齐

    Android Canvas绘制文字横纵向对齐

    这篇文章主要介绍了Android Canvas绘制文字横纵向对齐,Align属性决定了使用该画笔时,相较于绘制点的水平对称方式,分别是LEFT、CENTER、RIGHT,更多相关内容需要的小伙伴可以参考下面文章详细内容
    2022-06-06
  • Android开发之TableLayout表格布局

    Android开发之TableLayout表格布局

    这篇文章主要为大家详细介绍了Android开发之TableLayout表格布局,表格布局模型是以行列的形式管理子控件,对TableLayout表格布局感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

    Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接

    本文主要介绍Android IPC通信Binder中的Server和Client获得Service Manager接口,这里详细的说明了如何实现Service Manager接口,对研究Android源码的朋友提供帮助,有需要的小伙伴可以参考下
    2016-08-08
  • Android开发笔记之:Splash的实现详解

    Android开发笔记之:Splash的实现详解

    本篇文章是对Android中Splash的实现进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Android开发Kotlin语言协程中的并发问题和互斥锁

    Android开发Kotlin语言协程中的并发问题和互斥锁

    Android开发Kotlin语言提供了多种机制来处理并发和同步,其中包括高层次和低层次的工具,对于常规的并发任务,可以利用 Kotlin 协程提供的结构化并发方式,而对于需要更低层次的锁定机制,可以使用Mutex(互斥锁)来实现对共享资源的线程安全访问
    2024-06-06
  • Android中使用ViewStub实现布局优化

    Android中使用ViewStub实现布局优化

    ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View。虽然Android开发人员基本上都听说过,但是真正用的可能不多。今天我们就来详细探讨下ViewStub的使用
    2016-09-09
  • Android中让图片自适应控件的大小的方法

    Android中让图片自适应控件的大小的方法

    Android中可以自动切换横竖屏,还有不同大小的分辨率,如何让一张图片适应以上要求呢,下面讲解了实现的方法,有需要的朋友可以参考一下
    2013-09-09
  • Android ViewPager实现图片轮翻效果

    Android ViewPager实现图片轮翻效果

    这篇文章主要为大家详细介绍了Android ViewPager实现图片轮翻效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android实现可输入数据的弹出框

    Android实现可输入数据的弹出框

    这篇文章主要为大家详细介绍了Android实现可输入数据的弹出框,文章提供了两种方式,示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android中ListView下拉刷新的实现方法实例分析

    Android中ListView下拉刷新的实现方法实例分析

    这篇文章主要介绍了Android中ListView下拉刷新的实现方法,涉及Android操作ListView的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论