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

在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设置图片长宽比例,【教程】安卓保证图片长宽比的同时拉伸图片相关推荐

  1. android修改屏幕长宽比例,Android屏幕适配之修改density

    标准:1920px * 1080 5英寸 480 3 三星s10-22801080 6.1英寸 414 2.58 MI mix2-19201080 5.99 368 2.29 android中的dp在 ...

  2. php相机图片的长宽比例,照片常用的长宽比介绍,裁剪照片原来还有这么多选择...

    在拍摄照片的时候我们往往会在后期进行二次构图,在裁剪的时候有不同的相片长宽比供我们选择,不同的长宽比带给观众的感受也不一样.这里为大家介绍一下照片拍摄中常用到长宽比例. 3:2(6:4) 这张照片是用 ...

  3. 怎么修改图片长宽尺寸?如何用电脑修改照片尺寸?

    自媒体编辑工作的小伙伴经常需要修改图片尺寸(https://www.yasuotu.com/size)来应对不同平台的图片尺寸大小要求,那么如何改图片大小呢?接下来本文将带给大家一些关于图片改大小的相 ...

  4. android imageview 拉伸图片大小,【教程】安卓保证图片长宽比的同时拉伸图片

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在Android当中我们经常会遇到需要将一个图片拉伸用于填充屏幕的问题, 对于拉伸图片符合屏幕大小,我们通常可以在这个ImageView的配置文件 当中加 ...

  5. android开发隐藏图片,用美图看看安卓版教你如何隐藏私人图片(图文)

    手机本来就是一件很私人的物品,所以,如果存在手里的图片随便都可以让人翻阅的话,那私密性就没有任何保障了.如何不让其他人轻松就能看到.但自己可以随意调出手机里的私人图片呢?答案就是用美图看看安卓版的图片 ...

  6. pdfbox pdf转图片,图片长宽大小与pdf保持一致

    需求 需要将pdf转图片,用作预览,图片需要与pdf页的长宽大小保持一致. 依赖 org.apache.pdfbox:pdfbox:2.0.26 分析过程 pdfbox源码中,设置图片长宽大小的方法如 ...

  7. input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览

    前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...

  8. php 获取远程图片长宽和大小

    /***获取远程图片的宽高和体积大小 ** @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 frea ...

  9. php图片长宽处理,用php调整图片宽高 | 学步园

    /** * 改变图片的宽高 * * @author flynetcn (2009-12-16) * * @param string $img_src 原图片的存放地址或url * @param str ...

最新文章

  1. Mysql Select 语句中实现的判断
  2. 函数作用域的静态变量
  3. 《数据库系统实训》实验报告——函数的应用
  4. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别
  5. mysql 主主模式优缺点_mysql主主同步模式
  6. 编写代码的工作在哪找_编写事件代码如何帮助我获得了出色的工作
  7. 为什么总说程序员是吃青春饭的?真的是 35 岁混不到管理就等于失业?
  8. C#全局钩子和局部钩子记录
  9. 压敏电阻GB/T 10194测试和AEC-Q200认证
  10. 视频点播服务器项目,项目九搭建视频点播vod服务器美萍vod.doc
  11. 《Python实用爬虫案例》练习8:获取搜狗搜索引擎微信文章
  12. Landscape Photography: Autumn 风景摄影:秋天 Lynda课程中文字幕
  13. Android 源码编译生成framework.jar
  14. java连接阿里云物联网(服务器端)
  15. 单独的html怎么实现微信分享,html静态页面实现微信分享思路
  16. cocos2dx图片闪亮_SassDoc 2-闪亮的流章鱼出来了!
  17. CCF计算机认证考试201709-2:公共钥匙盒 非算法弱鸡版
  18. 如何使用微软官方工具制作win10启动盘
  19. s:if test标签出错,内容不显示
  20. 使用mp4v2将H264+AAC合成mp4文件

热门文章

  1. 梯度下降法的简单理解
  2. php电商实现自动售货,2020PHP自动售货发卡网程序开源源码 集成多个支付接口
  3. 【Excel神技】之 工作表区域保护
  4. 第九章(8)多元函数的极值及求法
  5. net.sf.cglib.beans.BeanCopier用途
  6. 计算机网络应用技术技能大赛
  7. win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法
  8. STM32CUBEMX_SDIO和FATFS_读写SD卡
  9. 台式启动修复无法自动修复此计算机怎么办,如果win7启动修复无法自动修复此计算机怎么办...
  10. 替换加密(恺撒加密法)