画画板实现起来其实很简单,我们只需要利用android给我们提供的Canvas类来操作就可以实现简单的画画功能

直接看代码,注释都写清楚了

public class MainActivity extends Activity {private ImageView iv;private Bitmap baseBitmap;private Canvas canvas;private Paint paint;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.iv = (ImageView) this.findViewById(R.id.iv);// 创建一张空白图片baseBitmap = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);// 创建一张画布canvas = new Canvas(baseBitmap);// 画布背景为灰色canvas.drawColor(Color.GRAY);// 创建画笔paint = new Paint();// 画笔颜色为红色paint.setColor(Color.RED);// 宽度5个像素paint.setStrokeWidth(5);// 先将灰色背景画上canvas.drawBitmap(baseBitmap, new Matrix(), paint);iv.setImageBitmap(baseBitmap);iv.setOnTouchListener(new OnTouchListener() {int startX;int startY;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:// 获取手按下时的坐标startX = (int) event.getX();startY = (int) event.getY();break;case MotionEvent.ACTION_MOVE:// 获取手移动后的坐标int stopX = (int) event.getX();int stopY = (int) event.getY();// 在开始和结束坐标间画一条线canvas.drawLine(startX, startY, stopX, stopY, paint);// 实时更新开始坐标startX = (int) event.getX();startY = (int) event.getY();iv.setImageBitmap(baseBitmap);break;}return true;}});}public void save(View view) {try {File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis() + ".jpg");OutputStream stream = new FileOutputStream(file);baseBitmap.compress(CompressFormat.JPEG, 100, stream);stream.close();// 模拟一个广播,通知系统sdcard被挂载Intent intent = new Intent();intent.setAction(Intent.ACTION_MEDIA_MOUNTED);intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));sendBroadcast(intent);Toast.makeText(this, "保存图片成功", 0).show();} catch (Exception e) {Toast.makeText(this, "保存图片失败", 0).show();e.printStackTrace();}}}

简单的布局文件

<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"    tools:context=".MainActivity" >    <Button        android:id="@+id/button1"        android:onClick="save"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:text="保存图片" />    <ImageView        android:layout_above="@id/button1"        android:id="@+id/iv"        android:layout_width="match_parent"        android:layout_height="match_parent"        /></RelativeLayout>

再来个权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


上两张我画的高端大气上档次的图片。。。。


android实现简单的画画板_第1张图片

android实现简单的画画板_第2张图片


android实现简单的画画板_第3张图片


更多相关文章

  1. Android 之多点触摸 手势拉伸放大缩小图片 并在ImageView上画圆
  2. Android 背景图片重复平铺
  3. Android 实现缩小图片像素
  4. Android异步加载图片,并缓存到SD卡
  5. Android中屏幕密度和图片大小的关系分析
  6. android 动态向Gallery中添加图片及倒影&&3D效果
  7. Android图片堆叠效果实现

随机推荐

  1. Android中创建和检测快捷方式
  2. Android(安卓)打勾显示输入的密码
  3. 全屏
  4. Android中回调下载事件处理实现步骤
  5. Android(安卓)Material Design之Coordina
  6. android中的spinner动态加载内容
  7. Android(安卓)Studio 1.2中配置androidan
  8. Qt for Android(安卓)Flutter - AAPT: er
  9. Android(安卓)NDK 往控制台打印Log
  10. 安卓课程二十一 SeekBar拖动控件的使用