[英]Get the alpha of an ImageView
我怎样才能做到这一点? 有一个setAlpha但没有getAlpha。
在这里你去View.ALPHA.get(View)
您可以将此命令与if语句一起使用以获取布尔值并检查视图的当前alpha状态。
如果任何人只需要获取并设置控件可见性,getVisibility和setVisibility可能是您可以使用的替代方法:
if(vw.getVisibility() == View.VISIBLE)
{
// do something
}
你可以设置可见性:
vw.setVisibility(View.INVISIBLE);
你不能直接。 您可以解决方法,只要您以编程方式设置alpha,就可以在设置时保留alpha值。 例如:
private int mCurrentAlpha;
private void setAlpha(int newAlpha){
mCurrentAlpha=newAlpha;
ImageView imageView=...
imageView.setAlpha(mCurrentAlpha);
}
实际上,你需要使用getOpacity()
因为只有ColorDrawable
, Transformation
和其他一些东西才能获得alpha existe。 你需要在ImageView
的drawable上使用它而不是视图本身。
没有简单的方法可以做到这一点。 这是因为ImageView
可能已经使用Bitmap
, StateListDrawable
, ColorDrawable
或其他完全设置。 这些类中只有一个具有单一颜色; 在任何其他drawable上,每个像素的alpha可能不同(像素为ARGB格式,每个字母为1字节,分别为alpha,red,green和blue)。 我很确定setAlpha()
方法仅适用于支持它的drawable,如上面的Sephy所述。
您究竟需要了解图像的透明度? 如果你知道ImageView将提前填充什么,那么也许你可以预先提取alpha。 如果您无法直接访问alpha,但是您可以确定颜色,那么alpha将等于color >>> 24
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.