Point outSize = new Point(showBigIvPic.getWidth(),showBigIvPic.getHeight());// 显示区域的高宽

// 使用图片的缩放比例计算将要放大的图片的高度

int bitmapScaledHeight = Math.round(resourceBitmap.getHeight() * outSize.x * 1.0f / resourceBitmap.getWidth());

// 以屏幕的宽度为基准,如果图片的宽度比屏幕宽,则等比缩小,如果窄,则放大

final Bitmap scaledBitmap = Bitmap.createScaledBitmap(resourceBitmap, outSize.x, bitmapScaledHeight, false);

showIvPic.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

try {

showIvPic.getViewTreeObserver().removeOnPreDrawListener(this);

//这里防止图像的重复创建,避免申请不必要的内存空间

if (scaledBitmap.isRecycled())return true;//必须返回true

int viewHeight = showBigIvPic.getMeasuredHeight();

Bitmap finallyBitmap = null;

if(scaledBitmap.getHeight() > viewHeight){

int offset = (scaledBitmap.getHeight() - viewHeight) / 2;// 计算将要裁剪的图片的顶部以及底部的偏移量

finallyBitmap = Bitmap.createBitmap(scaledBitmap, 0, offset, scaledBitmap.getWidth(),scaledBitmap.getHeight() - offset * 2);// 对图片以中心进行裁剪,裁剪出的图片就是非常适合了

}else{

int offset = (viewHeight - scaledBitmap.getHeight()) / 2;// 计算将要显示图片的顶部偏移量

//finallyBitmap = Bitmap.createBitmap(scaledBitmap, 0, offset, scaledBitmap.getWidth(),scaledBitmap.getHeight());

finallyBitmap = Bitmap.createBitmap(scaledBitmap.getWidth(), viewHeight, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(finallyBitmap);

canvas.drawBitmap(scaledBitmap, 0, offset, null);

canvas.save(Canvas.ALL_SAVE_FLAG);

canvas.restore();

}

if(null != finallyBitmap){

if(!finallyBitmap.equals(scaledBitmap)){//如果返回的不是原图,则对原图进行回收

scaledBitmap.recycle();

System.gc();

}//end of if

//showBigIvPic.setImageBitmap(resourceBitmap);

}else{

ToastUtils.showToastNew("抱歉,显示选择图片失败...");

}

}catch (Exception e){

ToastUtils.showToastNew("抱歉,显示选择图片异常...");

}

if (resourceBitmap != null && !resourceBitmap.isRecycled()) resourceBitmap.recycle();

return true;

}

});

android怎么设置图片缩放比例,Android按比例缩放图片相关推荐

  1. Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2)...

    Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2) 附录文章1以xml布局文件方式实现了一个view在横竖屏切换时候的大小尺寸缩放,实现这种需求 ...

  2. Android中设置显示文本,Android文本显示控件-TextView属性详解

    android:autoLink //设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) andr ...

  3. python调整屏幕缩放比例_python实现批量按比例缩放图片效果

    本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下 把脚本文件放在要缩放的文件夹下面. 双击运行脚本,输入要缩放的系数.脚本会在当前目录下创建一个scaledI ...

  4. Python Opencv等比例缩放图片

    Python Opencv等比例缩放图片 前言 前提条件 相关介绍 实验环境 等比例缩放图片 代码实现 输出结果 前言 本文是个人使用Python Opencv处理图片的笔记,由于水平有限,难免出现错 ...

  5. java实现按比例缩放图片技巧

    java实现按比例缩放图片技巧 案例需求: 根据指定的文件名称,用户给定的缩放比例来完成缩放图片 思路分析: 1.文件对象File 2.BufferedImage构造器: 图像数据的访问的缓冲器 3. ...

  6. html img图片不变形等比例缩放,兼容ie6

    方法1 img 只定义宽(或高)度可以等比例缩放,外面加个框,设置宽高和 overflow:hidden; 即可 方法2 在img标签里面只设置宽,不设置高,图片就会等比例缩放. 方法3 或者把图片作 ...

  7. html图片缩放6,html img图片不变形等比例缩放,兼容ie6

    方法1 img 只定义宽(或高)度可以等比例缩放,外面加个框,设置宽高和 overflow:hidden; 即可方法2 在img标签里面只设置宽,不设置高,图片就会等比例缩放. 方法3 或者把图片作背 ...

  8. python 等比例缩放图片 自写

    Python等比例缩放图片 使用了 OpenCV 进行图片的读取 输入:利用 cv2.imread 函数读取的 Mat 矩阵 输出:缩放后的 Mat 矩阵(示例代码为缩放到 512x512 大小,也可 ...

  9. [原创] 图片操作的类(ImageLibrary)-按比例缩放图片

    [原创] 图片操作的类(ImageLibrary)-按比例缩放图片 http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid=241 转载于:https:// ...

  10. Java 等比例缩放图片

    /*** 等比率缩放* @param imgsrc 原图片路径* @param imgdist 缩放图片路径* @param widthdist 指定缩放宽度*/ public static void ...

最新文章

  1. Sql Server实用操作-无数据库日志文件恢复数据库两种方法
  2. oracle10g总结
  3. 面包板上的高频放大电路
  4. java表格标题栏_Java MFixedColumnTable (提供行标题栏的表格)
  5. delphi webbrowser 显示 html,delphi webbrowser
  6. [置顶] 读取pdf并且在web页面中显示
  7. 修改 Linux 主机名
  8. 对于response.setContentType(MIME)的解释
  9. ORA-00845 方案解决
  10. 如何纠正孩子打人、骂人的习惯?
  11. Qt中QBitmap 的使用 --QBitmap的作用
  12. caffe训练的实时可视化思路
  13. amd核芯显卡控制面板自定义分辨率_电脑显示器分辨率超频教程:1080P超2K分辨率的方法...
  14. 冰点文库下载安装及使用教程
  15. Android Studio简介
  16. 罗技键盘+android风格,Logitech 罗技 K480 蓝牙键盘,IOS、OSX 和安卓三大系统使用体验...
  17. Visual Studio 2013 旗舰版正式版密钥
  18. android游戏工作心得体会,幼儿园游戏的心得体会(精选6篇)
  19. 2020山师计算机考研专业目录,2020年山东师范大学全日制学硕招生目录-008文学院...
  20. ECS云服务器新手上路

热门文章

  1. 彩灯控制单片c语言程序,基于51单片机的led彩灯设计。 9个灯(红绿蓝三色)。按键控制 c语言程序...
  2. 先行一步,7大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
  3. 自适应随机图片背景导航页源码
  4. 前端基础入门之css定位 position
  5. h5超简单大转盘抽奖效果(概率可控)
  6. 在HTML中把文本变成斜体的是,CSS/HTML:什么是使文本斜体的正确方法?
  7. Java电商平台之订单功能和支付功能实现
  8. 数字中国城市巡礼之济宁:以信立本,大数据点亮城市信用招牌
  9. 关于旋转(Rotation)
  10. 优惠券使用---责任链模式