多媒体_画画板---保存画完图片,并发送广播,让图库可以看到

转载 2016年06月01日 23:07:22

//布局文件

<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="${relativePackage}.${activityClass}" >

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/bg" />

    <LinearLayout 
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
      
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="red"
            android:text="红色"/>
        
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="green"
            android:text="绿色"/>
        
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="brush"
            android:text="刷子"/>
        
         <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="save"
            android:text="保存"/>
        
        
        
    </LinearLayout>
</RelativeLayout>


//MainActivity配置文件

package com.example.demo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
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.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;

public class MainActivity extends Activity {
	private int startX;
	private int startY;
	private Paint paint;
	private Canvas canvas;
	private ImageView iv;
	private Bitmap bmSrc;
	private Bitmap bmCopy;
	
	@Override
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//画一条线测试
		bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg);	
		
		bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());
		//画笔
		paint = new Paint();
		//画板
		canvas = new Canvas(bmCopy);
		//作画  到此步bmCopy和bmSrc的图片才会一样
		canvas.drawBitmap(bmSrc, new Matrix(), paint);
		//画一条线
		//canvas.drawLine(10, 10, 100, 100, paint);
		
		
		iv = (ImageView) findViewById(R.id.iv);
		iv.setImageBitmap(bmCopy);
		
		
		iv.setOnTouchListener(new OnTouchListener() {

			//手指触摸屏幕,就会产生触摸事件
			@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 newX = (int) event.getX();   
					int newY = (int) event.getY();   
					//指定线的起点和终点
					canvas.drawLine(startX,startY , newX, newY, paint);
					iv.setImageBitmap(bmCopy);
					
					//把本次画线的重点设置为下一次画线的起点
					startX = newX;
					startY = newY;
					break;
					//手指离开
				case MotionEvent.ACTION_UP:
					break;
				}
				
				//true表示告诉系统,这个触摸事件由IV处理
				//false表示不处理该触摸事件,事件往上传递
				return true;
			}
		});
		
	}
	
	//改变颜色
	public void red(View v){
		paint.setColor(Color.RED);
	}
	
	public void green(View v){
		paint.setColor(Color.GREEN);
	}
	
	public void brush(View v){
		//改变线条粗细
		paint.setStrokeWidth(8);
	}
	
	public void save(View v){
		/**
		 * arg0:图片格式
		 * arg1:压缩质量 0-100
		 * arg2:输出流,保存的位置
		 */
		File file = new File("mnt/sdcard/tt2.png");
		FileOutputStream fos;
		try {
			//把图片压缩到本地文件
			fos = new FileOutputStream(file);
			bmCopy.compress(CompressFormat.PNG, 100, fos);
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//手动发送sd卡就绪广播
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
		intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
		//无序广播
		sendBroadcast(intent);
		
	}	
	
	
}


//添加权限

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


android 画板(选择图片作为背景并保存)

我看了一下网上画板的写法有很多种,这篇文章的写法就是简单便捷,个人觉得不错,大家可以参考一下, http://blog.csdn.net/qq_31530015/article/details/51...
  • small_technical
  • small_technical
  • 2016年11月03日 16:28
  • 1659

android图片_画画板

一、项目目录结构 二、activity_main.xml界面 三、activity_main.xml代码
  • songyi160
  • songyi160
  • 2016年12月29日 21:31
  • 259

pycharm中将图片转化成字符画

PyCharmIDE: 给脚本传递参数 设置的地方: Run/Debug Configurations->Configurations->Script Parames 和vs类似,都不用输入程序...
  • xiaodangshan
  • xiaodangshan
  • 2017年03月21日 22:03
  • 226

python 一百行代码将图片转成字符画

该代码引用了PIL库的Image,所以必须先安装PIP,再安装PIL,记住,我的64位系统居然是选WIN32 结尾的那个whl文件,然后才安装成功。 下面贴代码: from PIL import I...
  • u014746368
  • u014746368
  • 2016年03月13日 18:23
  • 5092

Android保存图片到系统图库

最近有些用户反映保存图片之后在系统图库找不到保存的图片,遂决定彻底查看并解决下。 Adnroid中保存图片的方法可能有如下两种: 第一种是自己写方法,如下代码: public sta...
  • Buaaroid
  • Buaaroid
  • 2015年12月14日 20:05
  • 1551

Html5 canvas 简单画布画板涂鸦例子

简单的Html5 画板例子,巧妙的使用onmousemove 事件来实现画画, 可以
  • tuposky
  • tuposky
  • 2014年11月04日 22:54
  • 3750

java实现画图,可更换图形的各种形状,颜色,可擦除

java实现画图,可更换图形的各种形状,颜色,可擦除 Shape.java  封装图形的左右坐标,标志量,颜色 package huatu; import java.awt.Color; ...
  • xfsgdsgoy
  • xfsgdsgoy
  • 2017年06月11日 11:35
  • 1373

Android保存图片到系统图库及常见问题解决

今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下. 首页网上保存图片并插入系统图库的方法: // 首...
  • xuhang1993
  • xuhang1993
  • 2017年02月16日 16:02
  • 1652

自定义view实现涂鸦(画板)功能(二)

项目一直在做,现在空闲下来才有空整理剩下的。      进入正文:      需求修改之后,需要添加画椭圆、画矩形以及画箭头的方法,之后需要将在白色背景上作图改为在图片上进行编辑      总体来...
  • zhao980919517
  • zhao980919517
  • 2016年07月08日 10:40
  • 2157

Android-从图库中加载图片到屏幕并在上面画图

效果图: 权限: 布局文件:
  • u014657752
  • u014657752
  • 2015年08月25日 20:27
  • 1888
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多媒体_画画板---保存画完图片,并发送广播,让图库可以看到
举报原因:
原因补充:

(最多只允许输入30个字)