加载大图片
Options options=new Options();
options.inJustDecodeBounds=true;//不加载图片,只加载文件信息
//加载图片,获取到配置信息
BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/a.jpg",options);
int width=options.outWidth;//获取到图片的真是宽度
int height=options.outHeight;//获取到图片的真是的高度
//获取到手机屏幕显示对象
Display display = getWindowManager().getDefaultDisplay();
int h = display.getHeight();//获取屏幕的高度
int w = display.getWidth();//获取到平局的宽度
//计算缩放的比率
int scale=1;
int scaley=width/w;
int scalex=height/h;
if(scalex<1 && scaley<1){ }else{
//如果缩放的宽,大于高,则安照宽的缩放比率,因为高的缩放比率小,那么按照高的缩放比率的话,宽则超出了屏幕的宽
scale=scalex>scaley?scalex:scaley;
} options.inJustDecodeBounds=true;
options.inSampleSize=scale;//指定缩放比率
//根据配置信息,重新生成有一个bitmap对象,这就得到的是缩放之后的图片
Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/a.jpg",options);
img.setImageBitmap(bitmap); 涂鸦
1、首先加载一个图片Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/a.jpg");
2.创建一个空的图片,bit = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(),bitmap.getConfig());
3.创建一个画布,Canvas canvas=new Canvas(bit);
4.创建一个画笔 panint paint=new Paint(); paint.setcolor(Color.red);
5.把加载的图片画到画布上 canvas.drawBitmap(bitmap)
6.在图片上设置触摸事件,根据按下和移动的位置开始画线 加水印
和上面的一样,只是加了一句canvas.drawText("饿哦我到底发生", 100,100, paint); 保存图片通知相册扫描该图片 bit.compress(CompressFormat.JPEG, 100, new FileOutputStream(Environment.getExternalStorageDirectory()+"/hdksh.jpg"));
Intent intent=new Intent();
intent.setAction("android.intent.action.MEDIA_MOUNTED");
intent.setData(Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"hdksh.jpg")));
sendBroadcast(intent);//发送广播,通知相册扫描

图片的旋转
Bitmap bitmap=BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/mm.jpg");
Bitmap bit = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
Canvas canvas=new Canvas(bit);
Matrix matrix=new Matrix();
matrix.setRotate(180, bitmap.getWidth()/2, bitmap.getHeight()/2);
Paint paint=new Paint();
paint.setColor(Color.RED);
canvas.drawBitmap(bitmap, matrix, paint);
img.setImageBitmap(bit)

镜面效果
Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/mm.jpg");
Bitmap bit = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
Canvas canvas=new Canvas(bit);
Paint paint=new Paint();
Matrix matrix=new Matrix();
matrix.setScale(-1, 1);//反转
matrix.postTranslate(bitmap.getWidth(), 0);//移动
canvas.drawBitmap(bitmap, matrix, paint);
img.setImageBitmap(bit);

Android中bitmap的相关处理的更多相关文章

  1. Android中Bitmap, Drawable, Byte,ID之间的转化

    Android中Bitmap, Drawable, Byte,ID之间的转化 1.  Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArray ...

  2. android中Bitmap的放大和缩小的方法

    android中Bitmap的放大和缩小的方法 时间 2013-06-20 19:02:34  CSDN博客原文  http://blog.csdn.net/ada168855/article/det ...

  3. Android中WebView的相关使用

    近期做的项目中,遇到个非常棘手的问题: 客户给我的数据是有限制的,因此,在返回某条详细页面内容的时候,他仅仅能给我一个html片段,里面包括 文字,图片以及附件的下载地址.假设网页模版规范的爱比較好说 ...

  4. Android中 Bitmap Drawable Paint的获取、转换以及使用

    比如Drawable中有一系列连续的图片,img_0.png, img_1.png, img_2.png ... 如果要动态获取这些图片,通过"R.drawable.img_x"的 ...

  5. 关于如何避免Android中Bitmap引起的OutOfMemoryError

    在Android中处理大图片不是一件很随意的事情,因为通常我们使用的是内置的BitmapFactory解码图片的,而BitmapFactory往往会因为图片过大而遇到OutOfMemoryError的 ...

  6. Android中Bitmap对象和字节流之间的相互转换

    android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte   import java.io.B ...

  7. Android中Bitmap对象和字节流之间的相互转换(转)

    android 将图片内容解析成字节数组:将字节数组转换为ImageView可调用的Bitmap对象:图片缩放:把字节数组保存为一个文件:把Bitmap转Byte import java.io.Buf ...

  8. Android中Bitmap和Drawable,等相关内容

    一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...

  9. Android中图片处理相关问题

    在Android的开发中,我们经常回去处理一些图片相关的问题,比如当加载图片到内存中产生的OOM(OutOfMemory)异常.图片加载到内存中占多大内存的问题.jpg png两种常见的图片的原理及区 ...

随机推荐

  1. Android程序版本更新--通知栏更新下载安装(转)

    Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装,效果图如下: 检查当前版本号 AndroidManifest文件中的versionCode用来标识版本,在服务器放一个新 ...

  2. 【IOS】关于CGTransform的几个动画

    1.CGTransform主要三大功能,平移(Translation).缩放(Scale).旋转(Rotate). 平移: self.imageView.transform = CGAffineTra ...

  3. 织梦(dedecms)如何清空全部文章和删除后新增文章id号归1的方法

    很多朋友在使用织梦程序做网站的过程中,难免需要添加一些测试文章用于测试网站功能模板等,还有些人朋友网站改版需要变更内容的时候,面对着众多的老文章后总是一筹莫展! 由于织梦后台并不自带一键删除整站文章的 ...

  4. HTML5音乐播放器

    //HTML5部分 <a href="javascript:void(0);" onclick="getCurrentTime('firefox');"& ...

  5. (转)PHP函数spl_autoload_register()用法和__autoload()介绍

      转--http://www.jb51.net/article/29624.htm 又是框架冲突导致__autoload()失效,用spl_autoload_register()重构一下,问题解决 ...

  6. 一.去除字符串中的html标记及标记中的内容

    --1.创建函数 )) ) as begin declare @i int begin set @i=len(@maco) set @maco=replace(@maco, substring(@ma ...

  7. 启动php-fpm报错:please specify user and group other than root

    安装好PHP之后启动报错: 启动php-fpm报错:please specify user and group other than root, pool 'default 修改 php-fpm.co ...

  8. UIWebView执行JS语句

    示例网页: http://m.dianping.com/tuan/deal/moreinfo/11507109 移除该网页的返回按钮, 购买链接, 最底部的友情链接 代码: NSMutableStri ...

  9. 【USACO 1.5.3】特殊的质数肋骨

    [题目描述]农民约翰的母牛总是生产出最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数 ...

  10. windows phone使用sharpcompress进行解压压缩文件

    在做移动端时,当我们需要从服务器获得多个文件时,为了节约流量,服务器一般会返回一个压缩包,那我们就是下载完成后,在手机中进行解压到指定位置 SharpCompress就是可以在手机中进行解压一个类库( ...