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

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

  57. 镜面效果
  58. Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/mm.jpg");
  59. Bitmap bit = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
  60. Canvas canvas=new Canvas(bit);
  61. Paint paint=new Paint();
  62. Matrix matrix=new Matrix();
  63. matrix.setScale(-1, 1);//反转
  64. matrix.postTranslate(bitmap.getWidth(), 0);//移动
  65. canvas.drawBitmap(bitmap, matrix, paint);
  66. 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. Eclipse中使用git把项目导入到osc@git中

    方便Eclipse用户使用Git把项目导入到osc@git中进行管理. Eclipse Git osc@git 一.原有项目:  项目名为TestGit 二.在osc@git上面创建一个新项目库. 填 ...

  2. TCP/IP协议原理与应用笔记09:数据通信---封装

    2016-08-091. 数据通信----封装: 2. 协议数据单元: PDU:对等层数据通信的单元. 比如Source端的应用层 和 Destination端的应用层是对等层(L7),这个时候L7 ...

  3. 使用ssh对服务器进行登录

    一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...

  4. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  5. Poj 3368 Frequent values

    /* 线段树区间合并 维护几个信息 到时候乱搞一下就好了 开始T了 有一种情况可以不用递归 直接算出来 */ #include<iostream> #include<cstdio&g ...

  6. 转载:C# 之泛型详解

    本文原地址:http://www.blogjava.net/Jack2007/archive/2008/05/05/198566.html.感谢博主分享! 什么是泛型 我们在编写程序时,经常遇到两个模 ...

  7. oracle 的变量的定义和赋值

    第一种 :先定义后赋值 代码 : declare     V_AgeingType        varchar2(500); begin V_AgeingType :='111'; end 第二种 ...

  8. Animation动画(一)

    Android的animation由四种类型组成:alpha(渐变透明度动画效果).scale(渐变尺寸伸缩动画效果).translate(画面转换位置移动动画效果).rotate(画面转移旋转动画效 ...

  9. struts2学生信息管理系统篇章④

    把util包中的代码做了一下注释,分享一下 DateUtil 类 package com.java1234.util; import java.text.SimpleDateFormat; impor ...

  10. Dialog式的Activity(AndroidActivity生命周期)

    概述 和普通的Activity跳转稍微不同的是,当第1个Activity跳转到第二个Activity后,如果点击'back'按钮(即Android键盘的按钮,则不会调用调用第一个Activity的on ...