【Android】adjustViewBounds 的理解和使用

理解

adjustViewBounds 是一个 ImageView 的属性,用于调整 ImageView 的边界以适应图像的尺寸。当设置为 true 时,ImageView 的边界将根据图像的宽高比例进行调整,以确保图像完全显示在 ImageView 内部。

理解和使用 adjustViewBounds 的步骤如下:

  1. 在 XML 布局文件中,将 adjustViewBounds 设置为 true
<ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:adjustViewBounds="true"android:src="@drawable/my_image" />
  1. 在代码中,根据需要设置 ImageView 的宽度和高度。可以使用固定值、wrap_content 或者是根据屏幕尺寸动态计算:
ImageView imageView = findViewById(R.id.imageView);// 设置固定宽度和高度
imageView.setLayoutParams(new LinearLayout.LayoutParams(200, 200));// 使用 wrap_content
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));// 动态计算宽度和高度
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int screenWidth = displayMetrics.widthPixels;
int desiredWidth = screenWidth / 2;
int desiredHeight = (int) (desiredWidth * 0.75);
imageView.setLayoutParams(new LinearLayout.LayoutParams(desiredWidth, desiredHeight));
  1. 根据需要,可以结合其他属性(如 scaleType)来调整图像的缩放方式和对齐方式,以获得最佳的显示效果。
<ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="centerCrop"android:src="@drawable/my_image" />

通过使用 adjustViewBounds 属性,可以确保图像在 ImageView 内部完整显示,并且在调整 ImageView 的大小时保持图像的宽高比例。这在需要显示不同尺寸图像的应用程序中非常有用,可以有效地避免图像变形或裁剪。

不过上述的逻辑只是表明该配置是为了保证图片的裁剪效果罢了,重点还是查阅如下的参考
在这里插入图片描述

参考:Android:谈谈最被误读的属性adjustViewBounds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/138602.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse 配置selenium环境

eclipse环境 安装selenium的步骤 配置谷歌浏览器驱动 Selenium安装-如何在Java中安装Selenium chrome驱动下载 eclipse 启动配置java_home&#xff1a; 在eclipse.ini文件中加上一行 1 配置java环境&#xff0c;网上有很多教程 2 下载eclipse&#xff0c;网上有很多教程 ps&…

Spring中注入的使用

目录 一、什么是注入&#xff08;Injection&#xff09; 1.1 为什么要注入 二、注入的基本使用 三、Spring注入原理分析 一、什么是注入&#xff08;Injection&#xff09; 注入就是通过Spring的配置文件&#xff0c;为所创建对象的成员变量进行赋值 1.1 为什么要注入 书接上…

JDBC整合C3P0,DBCP,DRUID数据库连接池

在使用JDBC整合数据库连接操作时,如果需要用到事务,在去关闭Connection conn的时候 注意在关闭前 注意:最好这么做一下 避免下次别人用的时候也自动开启事务,但是自己测试C3P0时候,连接池会自动将状态更新,也就是说,即使关闭前不设置为true,默认连接池也会将状态更新, 这里…

python 运算符的优先级:先算乘除,后算加减,有括号的先算括号里面的。

运算符的优先级 什么是运算符的优先级&#xff1f;其实我们小学就已经接触过了&#xff0c;就是在一个表达式中&#xff0c;我们先算谁的问题。 先算乘除&#xff0c;后算加减&#xff0c;有括号的先算括号里面的。 个人建议&#xff1a; ① 不要把一个表达式****写得过于复杂…

16603/16604系列噪声源

仪器仪表苏州新利通 16603/16604系列噪声源 16603/16604 series noise sources 噪声源是一种能产生随机连续频谱信号的装置 国产思仪噪声源 01 产品综述 噪声源是一种能产生随机连续频谱信号的装置&#xff0c;良好的噪声源应在规定的频带内具有稳定的输出噪声功率和均匀的功…

[HNCTF 2022 WEEK2]ez_ssrf题目解析

这题主要是引入ssrf这个漏洞攻击&#xff0c;本质上没有更深入的考察 本题是需要我们去伪造一个ssrf的请求头去绕过 题目开始给了我们信息让我们去访问index.php fsockopen函数触发ssrf fsockopen() 函数建立与指定主机和端口的 socket 连接。然后&#xff0c;它将传入的 bas…

TX Text Control .NET Server for ASP.NET 32.0 Crack

TX Text Control .NET Server for ASP.NET 是VISUAL STUDIO 2022、ASP.NET CORE .NET 6 和 .NET 7 支持&#xff0c;将文档处理集成到 Web 应用程序中&#xff0c;为您的 ASP.NET Core、ASP.NET 和 Angular 应用程序添加强大的文档处理功能。 客户端用户界面 文档编辑器 将功能…

过滤器(Filter)和拦截器(Interceptor)有什么不同?

过滤器&#xff08;Filter&#xff09;和拦截器&#xff08;Interceptor&#xff09;是用于处理请求和响应的中间件组件&#xff0c;但它们在实现方式和应用场景上有一些不同。 实现方式: 过滤器是Servlet规范中定义的一种组件&#xff0c;通常以Java类的形式实现。过滤器通过在…

【Java学习之道】数据库的基本概念与分类

引言 在这一章中&#xff0c;我们将一起探讨数据库编程的基础知识和核心技能。作为Java程序员&#xff0c;掌握数据库编程是非常重要的&#xff0c;因为在实际开发过程中&#xff0c;我们经常需要处理大量的数据。通过本章节的学习&#xff0c;你将能够理解数据库的基本概念、…

牛客:FZ12 牛牛的顺时针遍历

FZ12 牛牛的顺时针遍历 文章目录 FZ12 牛牛的顺时针遍历题目描述题解思路题解代码 题目描述 题解思路 通过一个变量来记录当前方向&#xff0c;遍历矩阵&#xff0c;每次遍历一条边&#xff0c;将该边的信息加入到结果中 题解代码 func spiralOrder(matrix [][]int) []int {…

137.【SpringCloud-快速搭建】

微服务框架搭建 (一)、SpringCloud-Parent1.创建一个SpringBoot项目2.导入我们的依赖 (二)、SpringCloud-API (实体类)1.创建一个SpringBoot项目2.导入我们的依赖3.创建我们的实体类 (三)、SpringCloud-dept (业务A)1.创建一个SpringBoot项目2.导入我们的依赖3.配置我们的配置信…

zk的二阶段提交图解

第一阶段&#xff1a;每次的数据写入事件作为提案广播给所有Follower结点&#xff1b;可以写入的结点返回确认信息ACK&#xff1b;第二阶段&#xff1a;Leader收到一半以上的ACK信息后确认写入可以生效&#xff0c;向所有结点广播COMMIT将提案生效。