您的位置:首页 > 其它

图形画画板 如何欺骗系统将保存的图片加载如sd卡

2015-08-16 15:32 375 查看
package com.qq.paint;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

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.view.Menu;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.widget.ImageView;

import android.widget.Toast;

public class MainActivity extends Activity {

private ImageView iv;

private Bitmap alterbitmap;

private Paint paint;

private Canvas canvas;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv=(ImageView) findViewById(R.id.iv);

Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pre19 );

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

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

canvas = new Canvas(alterbitmap);

paint = new Paint();// 3.创建一个画笔。

paint.setColor(Color.RED);// 如果原图没颜色 就默认用黑色

paint.setStrokeWidth(8);

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

iv.setImageBitmap(alterbitmap);

iv.setOnTouchListener(new OnTouchListener() {

int startX = 0;

int startY = 0;

@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);

//手指的位置改变了。

startX = (int) event.getX();

startY = (int) event.getY();

iv.setImageBitmap(alterbitmap);

break;

case MotionEvent.ACTION_UP:

break;

}

return true;

}

});

}

public void save(View view){

try {

//在SD卡的外部存储创建文件名为haha.jpg的文件

File file=new File(Environment.getExternalStorageDirectory(),"haha.jpg");

//新建文件输出流

FileOutputStream stream=new FileOutputStream(file);

//压缩保存图片 图片格式 图片质量100原样保存 文件输出流

alterbitmap.compress(CompressFormat.JPEG, 100, stream);

stream.close();

Toast.makeText(this, "保存成功", 0).show();

//欺骗系统sd卡被重新插入

Intent intent=new Intent();

intent.setAction(Intent.ACTION_MEDIA_MOUNTED);//sd卡被挂载

//指定sd卡的路径

intent.setData(Uri.fromFile(Environment.getDataDirectory()));

//发送广播

sendBroadcast(intent);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

Toast.makeText(this, "保存失败", 0).show();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: