该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在Android当中我们经常会遇到需要将一个图片拉伸用于填充屏幕的问题,

对于拉伸图片符合屏幕大小,我们通常可以在这个ImageView的配置文件

当中加入android:scaleType="ScaleType.MATRIX"就可以了,但是

这样就会导致图片的大小失真,整个图片被拉伸的特变难看。所以我们

需要一种能够有选择的拉伸我们的图片,导致不致失真。

下面是一种简单的做法,但是不能够保证能解决所有遇到这种问题的场合,

所以,如果读到这篇文章的你发现了更好的解决办法,希望一定要联系我。

好了,下面就是解决的办法:

package com.yourpackage.widgets;

import android.content.Context;

import android.util.AttributeSet;

import android.widget.ImageView;

public class AspectRatioImageView extends ImageView

{

public AspectRatioImageView(Context context)

{

super(context);

}

public AspectRatioImageView(Context context, AttributeSet attrs)

{

super(context, attrs);

}

public AspectRatioImageView(Context context, AttributeSet attrs, int defStyle)

{

super(context, attrs, defStyle);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

{

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = width * getDrawable().getIntrinsicHeight() / getDrawable().getIntrinsicWidth();

setMeasuredDimension(width, height);

}

}

复制代码

整个过程很简答,就是在onMeasure()阶段时将图片的Aspect ratio(长宽比)考虑进去,这样

比单纯的机械的使用ScaleType.MATRIX或者ScaleType.FIT_XY要更能针对我们的目标和需求

(当然ScaleType.MATRIX和ScaleType.FIT_XY也有自己的适用场合,而且也比我们的技巧更为

专业,只是不符合我们暂时的需求而已).

然后我们就可以在XML文件当中对使用我们定义好的这个AspectRatioImageView了:

android:src="@drawable/yourdrawable" android:id="@+id/image"

android:layout_alignParentTop="true" android:layout_height="wrap_content"

android:layout_width="match_parent" android:adjustViewBounds="true" />

复制代码

如果遇到任何问题,请与我联系。希望能帮助到你。

android imageview 拉伸图片大小,【教程】安卓保证图片长宽比的同时拉伸图片相关推荐

  1. 在c 语言里如何制作滑动图片大小,[教程]教你在微信小程序中实现手势缩放图片...

    在小程序中,image 组件的 mode 有 12 种,其中只有三种是缩放模式.而在这三种之中,只有 aspectFit 模式可以等比例缩放图片,并显示完整的图片.此模式是保证图片长边完整地显示出来, ...

  2. instagram图片大小_如何上传最好看的Instagram图片

    instagram图片大小 Instagram is probably our favorite social network here at How-To Geek. We always want ...

  3. 怎么改图片大小kb像素不变?一键快速修改jpg图片大小?

    平时在处理图片时,怎么压缩jpg图片大小kb又不改变像素呢?推荐使用专业的jpg压缩(https://www.yasuotu.com/jpg)工具,今天小编分享这款jpg图片压缩软件,可以直接打开浏览 ...

  4. Android动态图标包制作教程,安卓手机ico图标制作美化图文教程

    如何让手机更加与众不同?今天我们就来学习如何利用出色的ico图标制作软件--Axialis IconWorkshop制作出美化手机屏幕的个性图标! 如今,每个人都有属于自己的手机,每天使用手机聊QQ. ...

  5. matlab 画图比例缩小图片大小,Matlab 画图字体,字号的设定,图片大小和比例

    figure_FontSize=12; set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); set(get(gca, ...

  6. matlab 画图比例缩小图片大小,Matlab 画图字体,字号的设定,图片大小和比例 | 学步园...

    figure_FontSize=12; set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); set(get(gca, ...

  7. 怎么截取图片大小 html,详解html2canvas截图不能截取圆角图片的解决方案

    以前我们只能通过其他的截图工具来截取图像.现代浏览器的功能已经越来越强,随着H5的逐渐普及,浏览器本身就可以截图啦.html2canvas就是这样一款前端插件,它的原理是将Dom节点在Canvas里边 ...

  8. latex里图片大小如何调整_如何使Latex中的图片放大依然清晰

    之前使用latex,图片都是采用的png或者是jpg格式,正常查看是没什么问题的,一放大就变样了.今天才学会怎么保持图片的清晰. 要使图片保持清晰得使用eps格式的图片.有两种方式: 1.  可以由v ...

  9. word保存为html不压缩图片大小,如何一键保存word文档中的图片?只需把.docx后缀改成压缩格式.zip即可 ......

    有时候我们在网上下载一篇Word文档,里面有很多张图片,我们想要将这些图片保存下来.如果是单张图片保存,我们可以选中图片,然后点击鼠标右键,选择[另存为图片]即可,如下图所示. 但如果是需要将所有图片 ...

  10. 如何免费压缩图片-批量免费压缩图片大小的软件

    如何免费压缩图片,今天给大家分享一款免费压缩图片的软件,支持任意格式的照片压缩,不仅可以压缩照片还可以放大图片,支持批量照片自动水印.批量关键词采集全网图片,导入链接批量下载图片,整站图片下载导出.详 ...

最新文章

  1. python自然语言处理.词性标注
  2. java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
  3. python 机器学习中,clf变量代表的是什么意思?(clf = classifier的缩写 分类器)
  4. Centos6.5静态IP设置
  5. 如何给远程计算机添加用户,如何访问远程计算机以添加/删除/管理用户帐户?...
  6. python close_wait_TCP time_wait close_wait问题(可能是全网最清楚的例子)
  7. 微软2022年10月补丁周二修复了84个漏洞
  8. 参考 雷霄骅https://blog.csdn.net/leixiaohua1020/article/list/28
  9. win10 +cude9.2+相匹配的cudnn+相匹配的tensorflow+ssd学习之路(问题百出1)
  10. zznu 2054 : 油田
  11. 今天凌晨十二点和明天凌晨十二点的时间戳
  12. 如何屏蔽百度搜索推广
  13. Android 360度全景图片 源码
  14. 以下哪些不是Linux操作系统特点,Linux系统都有哪些特点?很多人不知道!
  15. Linux 的chmod权限数字777、755、644代表什么?
  16. MS SQL 2005 32/64位下载
  17. 《数据结构与抽象:Java语言描述(原书第4版)》一1.2 说明一个包
  18. CISCO X8系列AP升级详解
  19. Electron-Vue + Element-UI 制作图片压缩工具实战
  20. 中文文字检测与识别的评测方法

热门文章

  1. python知识点智能问答_基于检索的智能问答
  2. oracle数据库中的update语句的用法
  3. 极简微前端框架-京东MicroApp开源了
  4. golang实现稀疏数组(Sparse array)
  5. 相关矩阵 Correlation matrix
  6. php三元运算符怎么用,PHP三元运算符使用说明
  7. 题目:953.验证外星语词典
  8. 【软件测试】软件测试的方法
  9. 音视频开发系列1:音视频开发基本概念
  10. 基础算法-支持向量机