android设置图片长宽比例,【教程】安卓保证图片长宽比的同时拉伸图片
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在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设置图片长宽比例,【教程】安卓保证图片长宽比的同时拉伸图片相关推荐
- 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在 ...
- php相机图片的长宽比例,照片常用的长宽比介绍,裁剪照片原来还有这么多选择...
在拍摄照片的时候我们往往会在后期进行二次构图,在裁剪的时候有不同的相片长宽比供我们选择,不同的长宽比带给观众的感受也不一样.这里为大家介绍一下照片拍摄中常用到长宽比例. 3:2(6:4) 这张照片是用 ...
- 怎么修改图片长宽尺寸?如何用电脑修改照片尺寸?
自媒体编辑工作的小伙伴经常需要修改图片尺寸(https://www.yasuotu.com/size)来应对不同平台的图片尺寸大小要求,那么如何改图片大小呢?接下来本文将带给大家一些关于图片改大小的相 ...
- android imageview 拉伸图片大小,【教程】安卓保证图片长宽比的同时拉伸图片
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在Android当中我们经常会遇到需要将一个图片拉伸用于填充屏幕的问题, 对于拉伸图片符合屏幕大小,我们通常可以在这个ImageView的配置文件 当中加 ...
- android开发隐藏图片,用美图看看安卓版教你如何隐藏私人图片(图文)
手机本来就是一件很私人的物品,所以,如果存在手里的图片随便都可以让人翻阅的话,那私密性就没有任何保障了.如何不让其他人轻松就能看到.但自己可以随意调出手机里的私人图片呢?答案就是用美图看看安卓版的图片 ...
- pdfbox pdf转图片,图片长宽大小与pdf保持一致
需求 需要将pdf转图片,用作预览,图片需要与pdf页的长宽大小保持一致. 依赖 org.apache.pdfbox:pdfbox:2.0.26 分析过程 pdfbox源码中,设置图片长宽大小的方法如 ...
- input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览
前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...
- php 获取远程图片长宽和大小
/***获取远程图片的宽高和体积大小 ** @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 frea ...
- php图片长宽处理,用php调整图片宽高 | 学步园
/** * 改变图片的宽高 * * @author flynetcn (2009-12-16) * * @param string $img_src 原图片的存放地址或url * @param str ...
最新文章
- Mysql Select 语句中实现的判断
- 函数作用域的静态变量
- 《数据库系统实训》实验报告——函数的应用
- J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别
- mysql 主主模式优缺点_mysql主主同步模式
- 编写代码的工作在哪找_编写事件代码如何帮助我获得了出色的工作
- 为什么总说程序员是吃青春饭的?真的是 35 岁混不到管理就等于失业?
- C#全局钩子和局部钩子记录
- 压敏电阻GB/T 10194测试和AEC-Q200认证
- 视频点播服务器项目,项目九搭建视频点播vod服务器美萍vod.doc
- 《Python实用爬虫案例》练习8:获取搜狗搜索引擎微信文章
- Landscape Photography: Autumn 风景摄影:秋天 Lynda课程中文字幕
- Android 源码编译生成framework.jar
- java连接阿里云物联网(服务器端)
- 单独的html怎么实现微信分享,html静态页面实现微信分享思路
- cocos2dx图片闪亮_SassDoc 2-闪亮的流章鱼出来了!
- CCF计算机认证考试201709-2:公共钥匙盒 非算法弱鸡版
- 如何使用微软官方工具制作win10启动盘
- s:if test标签出错,内容不显示
- 使用mp4v2将H264+AAC合成mp4文件
热门文章
- 梯度下降法的简单理解
- php电商实现自动售货,2020PHP自动售货发卡网程序开源源码 集成多个支付接口
- 【Excel神技】之 工作表区域保护
- 第九章(8)多元函数的极值及求法
- net.sf.cglib.beans.BeanCopier用途
- 计算机网络应用技术技能大赛
- win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法
- STM32CUBEMX_SDIO和FATFS_读写SD卡
- 台式启动修复无法自动修复此计算机怎么办,如果win7启动修复无法自动修复此计算机怎么办...
- 替换加密(恺撒加密法)