如何在 ImageView 中缩放图像以保持宽高比

2023-12-08

在Android中,我定义了一个ImageView's layout_width to be fill_parent(占据手机的整个宽度)。

如果我把图像放到ImageView大于layout_width,Android 会缩放它,对吧?但是身高呢?当Android缩放图像时,它会保持宽高比吗?

我发现顶部和底部有一些空白ImageView当 Android 缩放比实际尺寸更大的图像时ImageView。真的吗?如果是,我怎样才能消除那个空白?


  1. 是的,默认情况下 Android 会缩小图像以适合 ImageView,同时保持宽高比。但是,请确保您使用以下命令将图像设置为 ImageViewandroid:src="..."而不是android:background="...". src=使其缩放图像保持纵横比,但是background=使其规模化and扭曲图像以使其完全适合 ImageView 的大小。 (不过,您可以同时使用背景和源,这对于仅使用一个 ImageView 在主图像周围显示框架之类的事情很有用。)

  2. 您还应该看到android:adjustViewBounds使 ImageView 调整自身大小以适应重新缩放的图像。例如,如果您在通常为方形 ImageView 中有一个矩形图像,则 adjustmentViewBounds=true 也会将 ImageView 的大小调整为矩形。这会影响 ImageView 周围其他视图的布局方式。

    然后,正如 Samuh 所写,您可以使用以下命令更改默认缩放图像的方式android:scaleType范围。顺便说一句,了解其工作原理的最简单方法就是自己进行一些实验!请记住查看模拟器本身(或实际手机)中的布局,因为 Eclipse 中的预览通常是错误的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ImageView 中缩放图像以保持宽高比 的相关文章

  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • 如何在android中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • 更改首选项的背景颜色

    我有一个PreferenceCategory xml 文件 我已经在其中定义了所有首选项 我从扩展的类中调用它PreferenceActivity 我无法设置设置屏幕的背景 该屏幕是在如下所示的 xml 文件的帮助下显示的 请看我已经定义了
  • 如何使用 Android 版 Facebook 同步的联系人图片

    我的手机上安装了 Android 版 Facebook 它会自动将联系人列表中人员的 FB 个人资料图片同步到我的手机 我想在我访问的应用程序中使用这些图片ContactsContract PhoneLookup 我真的需要 Faceboo
  • 任务“:app:checkReleaseDuplicateClasses”执行失败

    我的 React Native Android 构建中突然出现构建问题 令人惊讶的是 它是早上建好的 没有做任何改变 但突然就失败了 这就是我得到的错误 知道为什么会发生这种情况吗 在 stack 和 GitHub 中也看到了一些类似的问题
  • 不使用 CookieManager 的 Android 会话 cookie

    我的应用程序进行多次网络调用以获得身份验证 我需要将此会话存储在 cookie 中 我想使用 Cookie Manager 但经过一些研究后 我发现它仅适用于 API 9 及更高版本 并且我的应用程序需要向后兼容 我使用 HTTPURLCo
  • Android,语言文件不起作用

    我现在正在创建一个 Android 应用程序 并尝试为我的母语添加语言文件 但在某种程度上 这对我不起作用 我尝试在两部不同的手机中加载该应用程序 但结果相同 之前创建过语言文件 效果良好 但这次不行 手机设置为瑞典语 语言文件适用于我创建
  • 将寻呼机视为列表视图行项目

    我有一个包含 20 行的列表视图 我想为列表视图中的每一行设置一个视图寻呼机 由于列表视图的行中的项目可能是一个或多个 并且我想使用视图分页器显示列表视图行项目 为此 我使用以下代码 将显示在列表视图行中的自定义布局 作为分页器项目
  • 明文 HTTP 流量...不允许

    我的程序从用户那里获取一个 URL 因此它可以向互联网上的任何网站发出请求 我试图让这成为可能 我查找了有关 Android HTTP Cleartext 错误的所有答案 并做了这个 但它仍然不允许我连接我的测试本地 PHP 服务器 我在这
  • 如何在代码中设置TextView的文字颜色?

    在 XML 中 我们可以通过以下方式设置文本颜色textColor属性 比如android textColor FF0000 但如何通过编码来改变它呢 我尝试过类似的东西 holder text setTextColor R color R
  • ImageButton 拉伸背景图像

    我正在尝试创建一个没有边框的 ImageButton 但遇到了图像按钮大小的问题 我使用 Eclipse ADT 将 ImageButton 拖到布局中并选择背景图像 图像按钮显示如下 正如您所看到的 背景图像和图像按钮周边之间有一个边框
  • Android 依赖项:apklib 与 aar 文件

    据我了解 apklib包含代码 共享资源Maven aar文件由以下人员分发Gradle The aar与 apklib 的主要区别在于 类被编译并包含在 aar 根目录下的classes jar 中 然而apklib不能包含已编译的类文件
  • 使用startActivityForResult,如何获取子活动中的requestCode?

    我有四项活动 即 A B C 和 D 我的情况是A将通过startActivityForResult启动活动B startActivityForResult new Intent this B class ONE 在另一种情况下 我将使用不
  • NoClassDefFoundError:com.google.firebase.FirebaseOptions

    我继续得到NoClassDefFoundError在我正在使用的其他测试设备 4 4 2 上 但在我的测试设备 Android 5 1 上运行良好 我尝试了用谷歌搜索的解决方案 但似乎没有任何效果 我正在使用 Firebase 实时数据库
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • 协程和 Firebase:如何实现类似 Javascript 的 Promise.all()

    在 Javascript 中 您可以同时启动两个 或更多 异步任务 等待它们完成 然后执行某些操作 继续 const firstReturn secondReturn await Promise all firstPromise secon
  • Exif 方向标签返回 0

    我正在开发一个自定义相机应用程序 我面临以下问题 当我尝试使用检索方向时ExifInterface 它总是返回 0 ORIENTATION UNDEFINED 这使我无法将图像旋转到正确的状态 从而无法正确显示 我使用示例代码来设置相机旋转
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • 在Sql Server中编写TRANSFORM语句

    我正在将 Web 应用程序后端从 Access 迁移到 MSSQL 但是我无法在 MSSQL 中重现以下查询 有什么想法吗 TRANSFORM First FollowUp FUData AS FirstOfFUData SELECT Fo
  • 使用 WCF 服务返回 List

    我得到了一个Employee班级和每个员工都有一份请假清单 可以给个清单吗AppliedLeave as a DataMember in WCF DataContract public class Employee DataMember p
  • Typescript:无法在模块外部使用 import 语句

    我在 Node js 2019 年 10 月 7 日最新版本的 Node js 应用程序中有一个 ts 文件 可以导入节点模块而无需默认导出 我使用这个结构 import Class from abc 当我运行代码时 出现以下错误 Cann
  • 访问 nullptr 怎么可能有效? [复制]

    这个问题在这里已经有答案了 我有一个简单的课程 class B public int getData return 3 然后 我用 nullptr 初始化指向它的指针 B foo nullptr 然后 尝试使用它会带来惊喜 int t fo
  • 转换列并更新 DataFrame

    所以 我下面要做的是删除一列A from a DataFrame因为我想应用一个转换 这里我只是json loadsJSON 字符串 并将旧列替换为转换后的列 转换后 我只需连接两个结果数据框 df df data drop A join
  • 如何比较“看起来相似”的 Unicode 字符?

    我陷入了一个令人惊讶的问题 我在应用程序中加载了一个文本文件 并且有一些逻辑来比较 的值 我意识到即使文本相同 比较值也是错误的 Console WriteLine Equals returns false Console WriteLin
  • OpenCV StereoRectify 扭曲图像

    我们有一个 ELP 1 0 百万像素双镜头 USB 立体相机 我们正在尝试使用 C 中的 OpenCV 3 1 来校准它 然而 校准的结果完全无法使用 因为调用stereoRectify完全扭曲了图像 这就是我们所做的 在两个相机中找到校准
  • 使用 Java/Socket 的简单 Http 服务器?

    我目前正在创建一个返回静态页面的小型 HTTP 服务器 p Hello p 我尝试使用 Java 的套接字 public static void main String args throws Exception cr ation de l
  • 使用 SuiteTalk 获取采购订单中的项目

    我正在尝试使用 SuiteTalk 从采购订单中获取商品和一些相关信息 我能够获得所需的采购订单TransactionSearch在 Scala 中使用以下内容 val transactionSearch new TransactionSe
  • python 字符串模块与 str 方法

    gt gt gt import string gt gt gt s happy cat gt gt gt string find s cat 6 and gt gt gt s happy cat gt gt gt s find cat 6
  • Netbeans 11.2:没有为项目或全局定义合适的部署服务器

    我在 Mac 上安装了 Netbeans 11 2 IDE 在 服务 gt 服务器 下 我添加了 GlassFish Server 作为服务器 然后我打开了一个maven项目 我可以 清理和建造 它 然后我想运行它 但这导致了以下错误消息
  • 如何将图像插入到闪亮的 navbarPage() 上的导航栏中

    我正在使用一个闪亮的应用程序navbarPage 布局 我想在屏幕右侧的导航栏中插入图像 例如 它看起来像 stackoverflow 网站顶部的导航栏 但在最右侧有一个徽标 我努力了 shinyUI navbarPage title te
  • 传递多个模型查看

    public ActionResult Index var pr db products return View pr 首先 我想传递给视图更多数据 例如 public ActionResult Index var pr db produc
  • 今天是一年中的第 n 天 [重复]

    这个问题在这里已经有答案了 我想获得天数 即 1 月 1 日是第 1 天 1 月 2 日是第 2 天 2 月 1 日是第 32 天 12 月 31 日是第 365 或 366 天 具体取决于是否闰年 我使用了各种技术 例如 date1 da
  • 如何取消设置和最右边的设置位

    有一个相对知名的技巧可以取消设置最右边的一个位 y x x 1 0b001011100 0b001011011 0b001011000 我发现自己有一个紧密的循环来清除最右边的 n 位 但是有更简单的代数技巧吗 假设 n 相对较大 对于 6
  • control.BeginInvoke() 无法调用委托

    我注意到 control BeginInvoke delegate 有时无法调用委托 据我了解 BeginInvoke 只是创建一条 PostMessage 该消息稍后由应用程序处理 默认情况下发布消息限制为 10 000 鉴于我们的应用程
  • 国际奥委会容器。注入容器

    我想要的 解析对象 A 在对象 A 内部 我想使用相同的容器来解析对象 C public static void Work IUnityContainer con new UnityContainer con RegisterType
  • 如何运行 Google 新的“places_compat_compatify.sh”兼容性脚本?

    我正在尝试迁移到谷歌提供的 SDK 的新位置 他们提供了一个兼容性脚本绞车自动执行该过程 https developers google com places android sdk client migration compat scri
  • 为什么 CUDA Profiler 指示重放指令:82% != 全局重放 + 本地重放 + 共享重放?

    我从 CUDA Profiler 获取信息 我很困惑为什么 重播指令 全局内存重播 本地内存重播 共享存储体冲突重播 请参阅我从探查器获得的以下信息 Replayed Instructions 81 60 Global memory rep
  • 如何在 ImageView 中缩放图像以保持宽高比

    在Android中 我定义了一个ImageView s layout width to be fill parent 占据手机的整个宽度 如果我把图像放到ImageView大于layout width Android 会缩放它 对吧 但是身