【Android】adjustViewBounds 的理解和使用

news2024/11/25 4:27:36

理解

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

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

  1. 在 XML 布局文件中,将 adjustViewBounds 设置为 true
<ImageView
    android: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)来调整图像的缩放方式和对齐方式,以获得最佳的显示效果。
<ImageView
    android: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.coloradmin.cn/o/1097766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐一些网络安全的网站和论坛

今天小编给大家推荐一批网络安全的网站和论坛&#xff0c;想学习网络安全技术的朋友们可以去这些网站看看&#xff1a; 1、红黑联盟 红黑联盟论坛 网址&#xff1a;bbs.2cto.com 2、安全客 一个提供网络安全资讯的网站 网址&#xff1a;www.anquanke.com 3、T00ls T00ls是…

为什么说互联网是最坏的行业

犹如春心萌动&#xff0c;想来写点东西。最近突然想通了很多事&#xff0c;以前老逼着自己拼命的挣钱&#xff0c;放弃了一切私生活&#xff0c;没有朋友&#xff0c;没有聚会&#xff0c;连逛街都认为是浪费时间和生命。确实挣了一些钱&#xff0c;以为自己会开心会快乐&#…

易点易动固定资产管理系统:高效完成固定资产盘点任务

固定资产盘点是企业管理中不可或缺的重要环节。然而&#xff0c;传统的固定资产盘点方式往往效率低下、易出错&#xff0c;给企业带来不必要的麻烦和成本。为了解决这一问题&#xff0c;易点易动固定资产管理系统应运而生。本文将详细介绍易点易动固定资产管理系统在固定资产盘…

完美解决word转pdf(亲测有效)

word搞了一天,找了无数的资料,以下这种方法是最好的。。。什么只能转3页了。。。什么字体库了。。。。各种坑 就三步: 第一步:下载jar包,然后放在这里 第二步:引入jar包,放在pom.xml文件 <dependency><groupId>com.aspose</groupId><artifact…

向世界展示“中国品牌”实力,中海达参展INTERGEO

10月10日-12日&#xff0c;全球测绘地理信息行业最权威的盛会INTERGEO在德国柏林举行。本次展会以“Inspiration for a smarter world”&#xff08;灵感碰撞&#xff0c;为更智慧的世界&#xff09;为主题&#xff0c;这与参展的中海达企业愿景“让万物位置更精准&#xff0c;…

【Linux】线程安全问题①——如何实现资源访问互斥(附图解与代码实现)

线程安全主要分为两个方面&#xff0c;分别是资源访问互斥与线程同步&#xff08;线程协同配合&#xff09; 本篇博客&#xff0c;我们主要来讲解资源访问互斥这一方面 目录 为什么要实现资源访问互斥&#xff1f; 实现资源访问互斥&#xff08;原子访问&#xff09;的经典…

JMeter连接数据库

一. 下载数据库驱动jar包 https://jdbc.postgresql.org/download/ 二. 将数据库驱动放到jmeter的lib目录下 三. 在jmeter中引用这个jar包 四. 添加一个jdbc数据库连接配置 五. 添加一个jdbc request来查询sql并将查询结果赋值给一个变量 六. 将查询结果用于其他请求

fico入门基础

Fico模块 会计主体一般为公司法人 分公司不算一个会计主体 分公司上金融中心 子公司会算一个会计主体 子公司上公司代码 会计期间:就是会计会一个期间结算一次(一般为一个月结算一次)(不同国家的快递期间起点会有不同;如日本四月份为第一个快递期间,三月份为第十二个快递期…

OTN较WDM系统的 升级功能

文章目录 1、增加运维规则&#xff0c;具体措施是增加了帧结构&#xff0c;提升业务的监控管理运维能力。2、增加电交叉功能&#xff0c;使得OTN系统可以分别处理客户业务信号和波分信号。 OTN较WDM系统的 升级功能主要表现在下面两方面&#xff1a; 1、增加运维规则&#xff0…

驾校倒闭了这么多,凭什么我能活下来,因为有云表利剑

因为部门场地比较分散&#xff0c;学员名单都是通过wps传递&#xff0c;但是某个部门更新学员信息时&#xff0c;其他部门无法实时共享更新&#xff0c;导致其他部门无法掌握学员最新信息&#xff0c;为学员提供制定服务。用了云表后学员只需在一个部门办一次业务&#xff0c;其…

专题三:穷举、暴搜、深搜、回溯、剪枝【递归、搜索、回溯】

1、全排列 class Solution { public:vector<vector<int>> ret;vector<int> path;bool check[7];void dfs(vector<int>& nums){if(nums.size() path.size()) {ret.push_back(path);return;}for(int i 0;i < nums.size();i){if(check[i] fals…

2023 年值得关注的软件测试趋势

随着软件在商业和日常生活中继续发挥关键作用&#xff0c;测试将不断发展以满足现代数字环境的需求。因此&#xff0c;组织努力更快、更频繁地交付他们的软件&#xff0c;并且测试过程需要更多地集成到开发过程中。 到2023年&#xff0c;我们可以看到各种软件测试趋势的出现&am…

轻游戏风格虚拟资源付费下载模板Discuz论坛模板

轻游戏风格虚拟资源付费下载模板Discuz论坛模板&#xff0c;游戏资讯付费VIP源码模板。 模板说明&#xff1a; 1、模板名称&#xff1a;"qing游戏风格"&#xff0c;版本支持&#xff1a;discuzx3.0版本&#xff0c;discuzx3.1版本&#xff0c;discuzx3.2版本&#…

4.查询用户的累计消费金额及VIP等级

思路分析&#xff1a; &#xff08;1&#xff09;按照user_id及create_date 分组求消费金额total_amount &#xff08;2&#xff09;开窗计算同user_id下的累计销售金额sum(total_amount) over(partition by user_id order by create_date ROWS BETWEEN UNBOUNDED PRECEDING AN…

报错——warning: ignoring JAVA_HOME=/home/jdk/jdk1.8.0_281; using bundled JDK

我使用了es的8.3.0版本&#xff0c;但es从7.17版本以后不再支持jdk1.8了&#xff0c;需要进行JDK的版本升级&#xff0c;或者降低es的版本。 es和jdk对比版本

口袋参谋:如何写出高权重标题?用对这招很重要!

​如何写出高权重标题&#xff1f;这是99.99%的卖家都存在的疑虑&#xff01; 以前写高权重标题&#xff0c;很多卖家往往会复制同行竞品爆款标题到淘宝首页搜索框&#xff0c;然后在全标题后面加上几个字母&#xff0c;就可以拆分爆款标题。 这个问题我之前也说过&#xff0…

【Java基础面试三】、说一说你对Java访问权限的了解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说你对Java访问权限…

css3自动吸附scroll-snap

我们希望可以一块一块的滚动&#xff0c;比如当前一个块滚出去了一部分并且后一个块滚进来一部分的时候&#xff0c;实现后一个块自动滚入或者前一个块回弹到初始位置这种效果&#xff0c;以前的时候用js需要写比较复杂的判断逻辑&#xff0c;后来有了一个css scroll snap这个方…

Kotlin笔记(四):高阶函数

1. 高阶函数 1.1 定义高阶函数 高阶函数和Lambda的关系是密不可分的。一些与集合相关的函数式API的用法&#xff0c;如map、filter函数等,Kotlin的标准函数&#xff0c;如run、apply函数等。这几个函数有一个共同的特点&#xff1a;它们都会要求我们传入一个Lambda表达式作为参…