- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
ImageView有两个方法相关的方法:setAlpha和 setImageAlpha .前者从 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/
ImageView有两个方法相关的方法:setAlpha和 setImageAlpha .前者从 API 级别 1 开始可用,但从 16 级开始不推荐使用。后者从 16 级开始可用。还有另一个 set
使用 this回答作为引用,我知道 View's setAlpha(float) 基本上在缓冲区上正常绘制 View ,然后使用第二遍绘制具有 alpha 值的 View 在现场,因此,设置 View
我是一名优秀的程序员,十分优秀!