我试图找出当它缩放图像时,

android正在做什么,特别是“centercrop”类型.所以要找到答案,我搜索了

ImageView源代码,并找到它为

here.

所以我试过的是这段代码:

public Bitmap buildBluredBoxBackground () {

int [] screenSize = Utilities.getScreenSize(mainActivityContext); //screensize[0] = x and [1] is y

Matrix mDrawMatrix = new Matrix();

Bitmap bitmap = ((BitmapDrawable)fullscreenViewHolder.imageViewArt.getDrawable()).getBitmap();

float scale;

float dx = 0, dy = 0;

if (bitmap.getWidth() * screenSize[1] > screenSize[0] * bitmap.getHeight()) {

scale = (float) screenSize[1] / (float) bitmap.getHeight();

dx = (screenSize[0] - bitmap.getWidth() * scale) * 0.5f;

} else {

scale = (float) screenSize[0] / (float) bitmap.getWidth();

dy = (screenSize[1] - bitmap.getHeight() * scale) * 0.5f;

}

mDrawMatrix.setScale(scale, scale);

mDrawMatrix.postTranslate(Math.round(dx), Math.round(dy));

result = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),mDrawMatrix,true);

... //Some processing work

return result;

}

但是它并没有给我相同的结果.我究竟做错了什么 ?

举个例子:

原始图片

原始ImageView中心裁剪

试用代码

编辑:

ImageView的XML

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/imageViewFullscreenArt"/>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/imageViewFullscreenArtBluredBox"/>

所以我的ImageView是全屏的.这就是为什么Im使用screenSize来处理它.

代码如何应用它

Bitmap bluredBoxBackground = buildBluredBoxBackground();

imageViewBluredBox.setImageDrawable(new BitmapDrawable(getResources(),bluredBoxBackground));

详细说明:

我只是试图获得与ImageView.setScaleType(ScaleType.CENTER_CROP)相同的效果.所以我的代码应该像原来的setScaleType方法一样.为什么我需要它作为代码?因为在我的情况下,我无法获取我的ImageView的绘图,但我必须处理&以某种方式编辑它

android imageview 获取bitmap缩放大小,android – Imageview缩放方法“centercrop”作为代码...相关推荐

  1. Android杂谈---获取手机屏幕大小

    Android杂谈---获取手机屏幕大小 SurfaceView简单例子 玩转Android---UI篇---ZoomControls放大缩小图片 更多相关推荐 这里总结下android中关于手机屏幕 ...

  2. android 组件大小,Android编程获取组件尺寸大小的方法

    本文实例讲述了Android编程获取组件尺寸大小的方法.分享给大家供大家参考,具体如下: 在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽 ...

  3. android调用音量方法,android中获取当前音量大小

    android中获取当前音量大小 (2012-11-07 08:40:41) 标签: it 通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! 设置音量的方法也很简单 ...

  4. android获取sd的大小,Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法...

    本文实例讲述了Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法.分享给大家供大家参考,具体如下: 可能有的同学不知道系统已经提供了获取获取SD卡总容量,可用大小,机身内存总 ...

  5. 学习笔记:android下获取sdcard容量大小

    在日常开发中,有时候需要对SDCard的容量先进行判断再存储文件.我们可以通过查看android关于setting功能的源代码,以便找到获取sdcard可用空间的方法. 获取sdcard容量大小的主要 ...

  6. android获取位图字节数,Android中获取图片尺寸大小两种方法

    两种方法  建议用第二种 private void getPictureSize(String path) { /*第一种直接把bitmap加载到内存中,通过对bitmap的测量, 得出宽高,由于这个 ...

  7. android 微信分享多张图片大小,Android 关于微信分享图片过大失败的解决方案

    android 关于微信分享图片过大失败的解决方案.这是因为微信对缩略图做了限制,最大不超过32k. 所以可以先通过图片加载工具获取bitmap,然后进行压缩,压缩方法如下: //压缩图片 publi ...

  8. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  9. android 背景图片自适应屏幕大小,android 设置桌面背景图片适应屏幕大小

    今天做demo,设置桌面每天自动更新背景,但是桌面的背景都是被系统裁剪过的图片,上网百度了一下,有个过时的方法,改进后果然有用了! Bitmap bmp=BitmapFactory.decodeRes ...

  10. android改变整个app字体大小,Android APP字体随系统字体调整造成界面布局混乱问题解决方案...

    一.遇到的问题: 当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱. 下面先说一下关于sp单位的理解 sp单位除了受屏幕密度影响外,还受到用户的字体大小影响, ...

最新文章

  1. NuGet学习笔记(3) 搭建属于自己的NuGet服务器
  2. python发挥_充分发挥 Python 的威力:用最简单的方法打造互联互通的智能产品
  3. android地址格式转换,Android(安卓)时间戳和日期之间的转化
  4. iptables的地址取反操作
  5. 简易linux修改ip,让Linux修改IP、DNS等可以更简单
  6. 启明云端分享|SSD20X_烧录mac地址文档参考
  7. MSTP多业务传输平台对设备接口的要求有哪些?
  8. SAP License:制造行业环境分析
  9. SQL Server-【知识与实战I】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
  10. JSP教程第9讲笔记
  11. python 计算两个经纬度的距离_使用经纬度和海拔(高程)计算两点之间的距离...
  12. 2021-03-25--通信网的身份认证与鉴权机制
  13. linux 编译chromium,chromium(linux环境)指定版本下载和编译教程
  14. 灰度拉伸python_对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现
  15. android滑屏效果,Android使用ViewFlipper和GestrueDetector共同实现滑屏效果实例
  16. 关于使用fluxion工具破解wifi密码的详细教程
  17. GIS 地质灾害评价——易发性评价方法的选择
  18. MobileNetv2-SSDLite训练自己的数据集
  19. 【动手学MVG】张正友标定法原理与实现
  20. Matlab指标权重的确定(AHP标度拓展层次分析法、EVM熵权法和博弈论的结合)

热门文章

  1. VFIO代码分析(5)VFIO-IOMMU驱动
  2. Linux x86-64 IOMMU详解(六)——Intel IOMMU参与下的DMA Coherent Mapping流程
  3. 四省卫视联手办春晚 展现各地风俗年味
  4. 计算机应用基础第十一版答案,计算机应用基础试题十一.xls
  5. 啊哈C语言 第二章 【代码】【习题答案】
  6. 班级管理系统(SSM+LayUI)
  7. python UI自动化无界面运行
  8. Oracle批量修改字段长度
  9. maven安装Ojdbc6
  10. [教程] 中断闪存或备份后如何修复 MTK 或 SPD 变砖