gpt4 book ai didi

android adjustViewBounds 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:30 24 4
gpt4 key购买 nike

当我在我的 imageView xml 中使用 android:adjustViewBounds="true"时,它不起作用。如果我把 setAdjustViewBounds(true);在我的 ImageView 的构造函数中,它工作正常。有什么区别,或者这是一个错误?

<ImageView
android:id="@+id/PageViewMainImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:adjustViewBounds="true"
android:visibility="invisible"/>

最佳答案

ImageView中的操作顺序构造函数 ( see source here ) 解析并设置 adjustViewBounds在解析和设置 scaleType 之前来自 XML 的属性来自 XML 的属性。 setAdjustViewBounds()的一部分方法(由构造函数使用您的 XML 属性值调用)是设置 ScaleTypeFIT_CENTER当值为真时。

因此,当加载您发布的 XML 时,ScaleType首先设置为 FIT_CENTER然后重新设置为MATRIX之后,都在构造函数中。将此与您调用 setAdjustViewBounds() 的示例进行比较在 Java 中,现在是最终的 ScaleType将是 FIT_CENTER因为您的 Java 调用将在解析 XML 属性后发生(实际上意味着您的 android:scaleType="matrix" 属性被忽略。这种差异很可能是您在“有效”和“无效”之间看到的。

我不确定 Google 是否会将其称为错误,因为他们只设置了 ScaleType以他们认为你想要的为方便,保留方面,但仍然允许你修改这个。 View 本身的边界仍会随着属性名称的指示而变化,图像可能会以您意想不到的方式裁剪。

虽然文档可能对这个“特性”更清楚,所以你可以在 http://b.android.com 提交错误报告。

HTH

关于android adjustViewBounds 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com