郑州app开发画画板案例。布局代码是三个button和一个imagesview下面是图片。

布局代码就不展示了。下面是java代码。

package cn.xhhkj.image;

import androidx.appcompat.app.AppCompatActivity;

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.graphics.Point;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.view.MotionEvent;

import android.view.View;

import android.widget.ImageView;

import android.graphics.Bitmap.CompressFormat;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "结果是";

private Canvas canvas;

private Paint paint;

private ImageView iv_image;

private Bitmap copybm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

indo();

}

public void init(){

iv_image = findViewById(R.id.iv_image);

}

public void indo(){

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),

R.drawable.c);

copybm = Bitmap.createBitmap(bitmap.getWidth(),

bitmap.getHeight(), bitmap.getConfig());

canvas = new Canvas(copybm);

paint = new Paint();

canvas.drawBitmap(bitmap, new Matrix(), paint);

iv_image.setImageBitmap(copybm);

iv_image.setOnTouchListener(new View.OnTouchListener() {

private float startX;

private float startY;

@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 x = event.getX();

float y = event.getY();

canvas.drawLine(startX, startY, x, y, paint);

iv_image.setImageBitmap(copybm);

startX = x;

startY = y;

break;

case MotionEvent.ACTION_UP:

break;

default:

break;

}

return true;

}

});

}

public void changeColor(View view) {

paint.setColor(Color.RED);

}

public void bold(View view) {

paint.setStrokeWidth(5);

}

public void save(View view) {

Log.d(TAG,"保存");

File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".png");

FileOutputStream fos;

try {

fos = new FileOutputStream(file);

copybm.compress(CompressFormat.PNG, 100, fos);

//            Intent intent = new Intent();

//            intent.setAction(Intent.ACTION_MEDIA_MOUNTED);

//            intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));

//            sendBroadcast(intent);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}

以上代码完成后,还需要在清单里面添加权限,android.permission.WRITE_EXTERNAL_STORAGE。这个是往手机存储权限。

学习android 画板源代码,Android实现画画板案例相关推荐

  1. Android开发笔记之简易画画板的制作

    如果有这样的需求,有多种颜色可供选择,通过seekbar调节画笔的粗细,实现在画板上涂鸦的功能.没有考虑其他的功能,只是对前面有关Android图像处理和Canvas的知识进行一个运用. 一.布局 三 ...

  2. android五子棋源代码,Android五子棋游戏源码详解

    最近看了鸿洋大牛的五子棋教程,受益匪浅,讲的非常好,关于五子棋的游戏原理非常清楚,并且学到了不少知识,在这里感谢鸿洋大神的分享.我觉得我的源码注释写的非常清楚了,希望能给你带来不少的收获. 布局< ...

  3. android 名册源代码,Android编程中黑名单的实现方法

    本文实例讲述了Android编程中黑名单的实现方法.分享给大家供大家参考,具体如下: 说明:由于挂断电话android   api不是对外开放的,所以需要使用反射的方法得到拨打电话的服务. 1.将an ...

  4. android 录像 源代码,android安卓视频录制摄像拍摄源码(测试可用)

    [实例简介] [实例截图] [核心代码] package com.cn.mvideo; import java.io.File; import java.io.IOException; import ...

  5. Android天气预报 源代码,android天气预报源码(国家气象局的接口)

    接口地址: 以json格式提供,格式如下 {"weatherinfo":{ //基本信息; "city":"北京","city_e ...

  6. Android系统源代码情景分析:基础知识

    老罗(罗升阳)发表在的InfoQ上的好文,最新在学习Android,转载一下,方便学习. 老罗的CSDN blog链接:http://blog.csdn.net/Luoshengyang/ 原文链接: ...

  7. Android可滑动画板,Android实现画画板案例

    本文实例为大家分享了Android实现画画板的具体代码,供大家参考,具体内容如下 ① 准备一个布局文件 xmlns:tools="http://schemas.android.com/too ...

  8. Android 实现图片画画板

    本文主要讲述了Android 实现图片画画板 设计项目布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk ...

  9. android实现简单的画画板

    画画板实现起来其实很简单,我们只需要利用android给我们提供的Canvas类来操作就可以实现简单的画画功能 直接看代码,注释都写清楚了 public class MainActivity exte ...

最新文章

  1. [转载] C#面向对象设计模式纵横谈——25 设计模式总结
  2. android error: undefined reference to 的错误分析
  3. Spring 4中@ControllerAdvice的改进
  4. python 列表、字典多排序问题
  5. 使用GDB调试器(一)
  6. 亡命逃窜---三维搜索
  7. 二分法其实很简单,为什么老是写不对!!!
  8. 函数的定义与变量作用域
  9. Rust: 如何在Windows下Atom中配置Rust环境?
  10. 遗传算法详解及matlab代码实现
  11. 用java编写简单的仓库管理_仓库管理系统+可视化界面java编写
  12. 利用高德地图通过给定坐标点画带箭头方向的路径
  13. unity井字棋和一些重要概念(中山大学3D游戏作业2)
  14. Chrome浏览器怎么保存整个网页为图片
  15. ijkplayer播放器
  16. c语言中“函数的定义不可以嵌套,但函数的调用可以嵌套
  17. IE 10 SCRIPT5022: InvalidCharacterError错误解决办法
  18. CocosCreator | 摄像机跟随/镜头跟随 玩家移动
  19. (考研湖科大教书匠计算机网络)第一章概述-第二节:三种交换方式(电路交换、报文交换和分组交换)
  20. 【CEGUI】CEGUI入门篇之创建window(四)

热门文章

  1. path r'c test.html',robot framework - robot命令参数解析
  2. computed set 自定义参数_深入理解vmodel之自定义组件用法
  3. 带有Python示例的math.cos()方法
  4. 不知道Mysql排序的特性,加班到12点,认了认了!
  5. Linux系统下启动MySQL的命令及相关知识
  6. C++总结篇(3)String类
  7. Stacked Hourglass Networks 人体姿态检测
  8. axios跨域携带cookie_vue 本地调试跨域---带cookies(axios)
  9. 用MATLAB实现神经网络
  10. Emscripten 单词_极光单词独创多种学习方法助您高效背单词