一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android实现画板、写字板功能的教程

时间:2017-03-07 编辑:简简单单 来源:一聚教程网

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

效果图如下

XML布局代码

 代码如下 复制代码

 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">

 

 

  android:id="@ id/iv_drawingBoard"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:src="@drawable/bg"/>

 

Java代码

 代码如下 复制代码

publicvoidinit() {

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(),

   R.drawable.bg);

 copyBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());

 paint =newPaint();

 canvas =newCanvas(copyBitmap);

 Matrix matrix=newMatrix();

 canvas.drawBitmap(bitmap, matrix, paint);

 

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

 

 imageView.setImageBitmap(copyBitmap);

  

 imageView.setOnTouchListener(newOnTouchListener() {

 

  @SuppressLint("ClickableViewAccessibility")

  @Override

  publicbooleanonTouch(View v, MotionEvent event) {

   intaction = event.getAction();

   switch(action) {

   caseMotionEvent.ACTION_DOWN:

     startX=event.getX();

     startY=event.getY();

    break;

   caseMotionEvent.ACTION_MOVE:

    floatcurrentX=event.getX();

    floatcurrentY=event.getY();

    canvas.drawLine(startX, startY, currentX, currentY, paint);

    imageView.setImageBitmap(copyBitmap);

    startX=currentX;

    startY=currentY;

     

    break;

   caseMotionEvent.ACTION_UP:

 

    break;

 

   }

   returntrue;

  }

 });

 

}

热门栏目