/*** 对图片根据手机宽高进行等比例拉伸* @param activity* @param view* @param drawableResId*/
public static void scaleImage(final Activity activity, final View view, int drawableResId) {// 获取屏幕的高宽Point outSize = new Point();activity.getWindow().getWindowManager().getDefaultDisplay().getSize(outSize);// 解析将要被处理的图片Bitmap resourceBitmap = BitmapFactory.decodeResource(activity.getResources(), drawableResId);if (resourceBitmap == null) {return;}// 开始对图片进行拉伸或者缩放// 使用图片的缩放比例计算将要放大的图片的高度int bitmapScaledHeight = Math.round(resourceBitmap.getHeight() * outSize.x * 1.0f / resourceBitmap.getWidth());// 以屏幕的宽度为基准,如果图片的宽度比屏幕宽,则等比缩小,如果窄,则放大final Bitmap scaledBitmap = Bitmap.createScaledBitmap(resourceBitmap, outSize.x, bitmapScaledHeight, false);view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {@Overridepublic boolean onPreDraw() {//这里防止图像的重复创建,避免申请不必要的内存空间if (scaledBitmap.isRecycled())//必须返回truereturn true;// 当UI绘制完毕,我们对图片进行处理int viewHeight = view.getMeasuredHeight();// 计算将要裁剪的图片的顶部以及底部的偏移量int offset = (scaledBitmap.getHeight() - viewHeight) / 2;// 对图片以中心进行裁剪,裁剪出的图片就是非常适合做引导页的图片了Bitmap finallyBitmap = Bitmap.createBitmap(scaledBitmap, 0, offset, scaledBitmap.getWidth(),scaledBitmap.getHeight() - offset * 2);if (!finallyBitmap.equals(scaledBitmap)) {//如果返回的不是原图,则对原图进行回收scaledBitmap.recycle();System.gc();}// 设置图片显示view.setBackgroundDrawable(new BitmapDrawable(activity.getResources(), finallyBitmap));return true;}});
}

对图片进行等比例拉伸相关推荐

  1. Android 保持ImageVIew大小不变,让图片按比例拉伸

    目录 结果总览 结论:保持图片宽高比总体有两种思路: 实践示例 效果图: 原理说明: 补充说明: 再次汇总 结果总览 全篇为个人理解终结,如有出入请参考官方文档 ImageVIew 按比例拉伸图片,前 ...

  2. 【UGUI】 全屏背景图片等比例拉伸自适应

    效果如下: 首先感叹一下,UGUI的自适应做的还是非常不错的,RectTransform中提供了非常多种的自适应方式.对做界面来说还是很友好的. 如果界面上需要有个全屏的背景图(UI界面一般都是有的吧 ...

  3. java resizable方法,[Java教程]jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧...

    [Java教程]jQuery UI resizable使用注意事项.实时等比例拉伸及你不知道的技巧 0 2015-01-29 00:00:22 这篇文章总结的是我在使用resizable插件的过程中, ...

  4. 【Maya绑定】三点式IK骨架的比例拉伸——结合节点编辑器和命令行

    前言 原理之前在这篇文档讲过,纯属于自嗨产物,大概只有自己能看得懂写了啥.然后根据这个思路实现.这篇主要目的就是复习下节点编辑器.maya节点编辑器的手感真的稀烂. 这个系列都是挖的国外的某个教程,不 ...

  5. html图片等比例拉伸,CSS控制图片等比例缩放

    我们经常会需要把用户上传的图片等比例缩放在我们的网页上显示,下面我来介绍利用css控制图片比例缩放与javascript实现的方法,有需要了解的朋友可参考参考. 按比例缩小或者放大到某个尺寸,对于标准 ...

  6. 对图片进行等比例压缩

    1.需要导入的jar包 2.定义类的私有字段 3.有参和无参构造 /** * 无参构造(一般在存在有参构造的情况的需要另写一个无参构造,防止系统将有参构造默认为需要自动执行的方法,防止报错) */ p ...

  7. 利用canvas对图片进行等比例压缩

    <script>var input = document.querySelector("input");var imgArr=[];input.addEventList ...

  8. iOS WebView加载图片严重拉伸变形,解决方案很简单,让图片比例拉伸就好。

    //在webView加载完毕后注入js样式修改图片宽高,网上很多人抄来抄去都只是更改了宽度,却没有去更改高度 -(void)webViewDidFinishLoad:(UIWebView *)webV ...

  9. iOS图片拉伸(resizableImage)

    返回一张受保护且被拉伸的图片 应用场景:聊天窗口的气泡 方法一(弃用): iOS 5.0以前使用(弃用)这个方法会自动计算出偏向中间的一个1*1的方格也就是被拉伸的地方(默认使用拉伸),一般传入的值为 ...

最新文章

  1. HDU - 2181-哈密顿绕行世界问题
  2. 数据增删改查之三层架构(理解三层续)
  3. jQuery+css模拟下拉框模糊搜索的实现
  4. 九十五、轻松搞定Python中的Excel办公自动化系列
  5. java开启新线程的三种方法
  6. java 方法重载的作业_java第六章 方法及方法重载 课堂笔记、作业
  7. Java 8 特性 – 终极手册(一)
  8. Java 和C# 最大的不同是对底层的控制能力不同
  9. E-MapReduce 2.0.0 版本发布
  10. 干货| 364套各类风格毕业设计答辩PPT模板~
  11. react devtools插件报错处理
  12. 最小二乘法的对偶形式(CVX)
  13. 面试那些事儿- UI设计面试常见问题
  14. swiper+vue3,使用自动切换autoplay+自定义分页器navigation的报错问题解决
  15. 各主板黑苹果dsdt补丁_关于B75主板的DSDT警告修改和睡眠相关修改
  16. 牛客网—Java练习题
  17. 笔记本计算机回收站在哪里,电脑回收站不见了怎么办 四种方法教你快速解决问题【图文教程】...
  18. 腾讯3轮面试都问了Android事件分发,最强技术实现
  19. 关于世博会的一些遐想!
  20. (小脚本) (python) 批量修改文件后缀名

热门文章

  1. 3dmax模型导出成glb格式供Cesium使用
  2. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码
  3. 第十三届服务外包创新创业大赛记录总结(一)
  4. ubuntu系统下,navicat 过期
  5. Google Earth Engine APP——gee-ui geetemp 前端团队组件库
  6. 米兔机器人魔方_你知道米兔指尖积木都有什么玩法么?最后一个小编都没想到...
  7. 2021中国宏观经济形势分析与预测年中报告
  8. 计算机辅助药物设计 fda,计算机辅助药物设计中的分子动力学模拟.pdf
  9. 大功率信号发生器原理是什么,安泰功率放大器型号推荐!
  10. Android开发流程总结