ImageView在任意尺寸下的自适应
来源:互联网 发布:无人机地面站软件下载 编辑:程序博客网 时间:2024/06/06 02:39
今天研究图片处理的一些功能,发现当图片宽度铺满屏幕宽度的时候,无论怎么设置scaleType属性+adjustViewBounds属性都无法使图片在铺满屏幕宽度的前提下保持宽高比不变,经过参考网上前辈的经验,发现需要自定义IamgeView,重写onMeasure()方法:
具体思路是:获取加载在ImageView中的图片的Drawable对象,然后以屏幕的宽度*Drawable对象的宽高比,获得View的新的高度,然后调用setMeasuredDimension()方法,重新设置宽高参数。具体如下:
public class AdaptiveImageView extends ImageView { public AdaptiveImageView(Context context) {//java代码new对象使用 super(context); } public AdaptiveImageView(Context context, @Nullable AttributeSet attrs) { //xml中布局使用 super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Drawable drawable = getDrawable(); int width = MeasureSpec.getSize(widthMeasureSpec); float drawHeight = drawable.getIntrinsicHeight(); float drawWidth = drawable.getIntrinsicWidth(); // 控件的宽度width = 屏幕的宽度 MeasureSpec.getSize(widthMeasureSpec); // 控件的高度 = 控件的宽度width*图片的宽高比 drawHeight / drawWidth; int height = (int) Math.ceil(width * (drawHeight / drawWidth)); setMeasuredDimension(width, height); }}
xml中这样使用即可:
<AdaptiveImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@mipmap/shuchang" android:scaleType="fitXY" android:adjustViewBounds="true"/>
效果图:
阅读全文
0 0
- ImageView在任意尺寸下的自适应
- ImageView的自适应属性
- ImageView的自适应
- ImageView的scaleType自适应图片
- Android ImageView 的图片自适应
- iOS Button 设置AttributeString 在不同状态下自适应尺寸心得
- 调用按钮内部imageView的尺寸
- 动态调整ImageView的尺寸(width 、height
- iOS修改UIButton内部imageView的尺寸
- android 在Activity下获取getWindowManager()的屏幕尺寸和自定义View下的获取尺寸
- 宽度固定,高度自适应的imageview
- android中自定义ImageView的高度自适应
- 总结自适应网站的标准尺寸
- 总结自适应网站的标准尺寸
- 自适应尺寸变化的meanshift跟踪
- ImageView根据屏幕大小动态设置图片的尺寸
- 在任意Windows目录下进入Dos的方法
- 在任意Windows目录下进入Dos的方法
- 字符串转枚举
- web项目上为什么报个小红叉解决办法
- 深入了解物联网,从LoRa开始
- 写给项目上线一个月后的自己
- 如果要把一个类的实例变成 str,就需要实现特殊方法__str__():
- ImageView在任意尺寸下的自适应
- shiro静态资源内容无法加载问题
- emacs中文输入法不能输入的问题
- git 在Android Studio中的使用问题
- angular2学习笔记
- 图片点击指定位置触发链接
- 洛谷 1280 尼克的任务 DP 解题报告
- SpringBoot 加载第三方Jar包
- PHP生成普通的静态文件