服务器之家

服务器之家 > 正文

android实现简单的画画板实例代码

时间:2021-02-22 12:37     来源/作者:Android开发网

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

 

复制代码 代码如下:


public class mainactivity extends activity {
 private imageview iv;
 private bitmap basebitmap;
 private canvas canvas;
 private paint paint;

 

 @override
 protected 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;

   @override
   public 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实现简单的画画板实例代码

android实现简单的画画板实例代码

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部