android 高清图片处理,android中的图片处理

该博客展示了如何在Android应用中创建一个活动,允许用户在位图上绘制线条,并将绘制的内容保存到SD卡。主要涉及Bitmap、Canvas、Paint等图形处理技术,以及OnTouchListener事件监听。
摘要由CSDN通过智能技术生成

packagexidian.dy.com.chujia;importandroid.content.Intent;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Matrix;importandroid.graphics.Paint;importandroid.net.Uri;importandroid.os.Bundle;importandroid.os.Environment;importandroid.support.v7.app.AppCompatActivity;importandroid.view.MotionEvent;importandroid.view.View;importandroid.widget.ImageView;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;public class MainActivity extendsAppCompatActivity {intpreX,preY;

Bitmap bmcpy;

@Overridepublic voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Bitmap bm=BitmapFactory.decodeResource(getResources(), R.drawable.bg);

bmcpy=Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());final Paint paint = newPaint();final Canvas canvas = newCanvas(bmcpy);//设置画笔的颜色为红色

paint.setColor(Color.RED);

canvas.drawBitmap(bm,newMatrix(), paint);final ImageView iv =(ImageView) findViewById(R.id.iv);

iv.setImageBitmap(bmcpy);if(iv != null)

iv.setOnTouchListener(newView.OnTouchListener() {

@Overridepublic booleanonTouch(View v, MotionEvent event) {int action =event.getAction();switch(action) {caseMotionEvent.ACTION_DOWN:

preX= (int) event.getX();

preY= (int) event.getY();break;caseMotionEvent.ACTION_UP:break;caseMotionEvent.ACTION_MOVE:int x = (int) event.getX();int y = (int) event.getY();

canvas.drawLine(preX, preY, x, y, paint);

iv.setImageBitmap(bmcpy);

preX=x;

preY=y;break;

}return true;

}

});

}//将画好的图片进行保存

public voidsave(){

File file= new File("/sdcard/tmp.png");try{

FileOutputStream fos= newFileOutputStream(file);

bmcpy.compress(Bitmap.CompressFormat.PNG,10,fos);

Intent intent= newIntent();//发出SDcard挂载广播来刷新MediaStore数据库

intent.setAction(Intent.ACTION_MEDIA_MOUNTED);

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

startActivity(intent);

}catch(FileNotFoundException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值