gpt4 book ai didi

android - setAlpha 和 setImageAlpha 的区别

转载 作者:IT老高 更新时间:2023-10-28 21:53:58 32 4
gpt4 key购买 nike

ImageView有两个方法相关的方法:setAlphasetImageAlpha .前者从 API 级别 1 开始可用,但从 16 级开始不推荐使用。后者从 16 级开始可用。还有另一个 setAlpha方法,来自 View类,这是在 API 级别 11 中引入的。

ImageView#setAlpha 和 ImageView#setImageAlpha 的区别仅仅在于命名吗?有什么行为差异吗? View#setAlpha 和 ImageView#setAlpha 是什么关系?

最佳答案

ImageView.setAlpha(int) 已重命名为 ImageView.setImageAlpha(int) 以避免与新方法 View.setAlpha(float)< 混淆 在 API 级别 11 中引入。

View.setAlpha(float) 是一种通用方法,适用于所有View,包括ImageView。它将指定的不透明度应用于整个 View 。为了实现这一点,默认情况下,系统会创建一个临时缓冲区(硬件层),在其中照常绘制 View,然后使用指定的 alpha 值在屏幕上绘制该缓冲区。这是一个两遍机制,需要初始分配缓冲区,所以速度有点慢。有关更多信息以及如何更改默认行为,请观看此视频:Hidden Cost of Transparency .重要的是要注意 ImageView 默认包含一个优化,如果它没有背景,它将避免这种缓冲区分配,所以在实践中调用 ImageView.setAlpha(float) 时不会有性能损失 如果 ImageView 没有背景。

ImageView.setImageAlpha(int)(和 ImageView.setAlpha(int))是 ImageView 特有的方法。它们控制用于直接在屏幕上绘制内容图像(位图或其他)的 alpha 值,没有中间 channel ,因此这是将透明度应用于 ImageView< 显示的图像的首选方法。当然,如果你在 ImageView 上设置了一个背景 Drawable 并且你也希望是半透明的,这种方法不会产生预期的结果。

关于android - setAlpha 和 setImageAlpha 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831775/

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