栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android实现画画板案例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android实现画画板案例

本文实例为大家分享了Android实现画画板的具体代码,供大家参考,具体内容如下

① 准备一个布局文件




  

② 核心代码

package com.example.it;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Environment;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

private final String TAG = getClass().getSimpleName();
private ImageView iv_show;
private Bitmap copyBm;
private float x;
private float y;
private Paint paint;
private int paintsize = 1;
private FileOutputStream fos;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //初始化控件
  iv_show = (ImageView) findViewById(R.id.iv_bg);
  //创建一个空白的bitmap
  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
  copyBm = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
  //创建画布
  final Canvas canvas = new Canvas(copyBm);
  //使用画布绘制图片
  paint = new Paint();
  canvas.drawBitmap(bitmap,new Matrix(), paint);
  iv_show.setImageBitmap(copyBm);

  //为画笔在屏幕上移动设置监听事件
  iv_show.setonTouchListener(new View.onTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

      //获取当前事件的类型
      int action = event.getAction();
      switch (action){
 case MotionEvent.ACTION_DOWN:
   //如果是手指按下时,记录一下手指的位置
   x = event.getX();
   y = event.getY();
   Log.e(TAG,x+"******"+y);
   break;
 case MotionEvent.ACTION_MOVE:
   //如果手指正在移动时
   float x1 = event.getX();
   float y1 = event.getY();
   canvas.drawLine(x,y,x1,y1, paint);
   x = x1;
   y = y1;
   Log.e(TAG,x1+"**********"+y1);
   break;
 case MotionEvent.ACTION_UP:
   break;
      }
      iv_show.setImageBitmap(copyBm);
      return true;
    }
  });
}

//修改颜色
public void color(View view) {
  paint.setColor(Color.RED);
}

//修改线条粗细
public void size(View view) {
  paintsize+=1;
  paint.setStrokeWidth(paintsize);
}

//保存图片
public void save(View view) {

  //设置图片保存的位置
  File file = new File(Environment.getExternalStorageDirectory(), SystemClock.currentThreadTimeMillis()+".png");
  try {
    fos = new FileOutputStream(file);
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  }

  //设置参数保存的质量
  copyBm.compress(Bitmap.CompressFormat.PNG,100,fos);
  //定义一个意图,通过发出广播告诉系统扫描指定的位置的文件
  Intent intent = new Intent();
  intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  intent.setData(Uri.fromFile(file));
  sendBroadcast(intent);
}
}


③ 权限信息


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/155083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号