繁体   English   中英

获取ImageView的alpha

[英]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()因为只有ColorDrawableTransformation和其他一些东西才能获得alpha existe。 你需要在ImageView的drawable上使用它而不是视图本身。

没有简单的方法可以做到这一点。 这是因为ImageView可能已经使用BitmapStateListDrawableColorDrawable或其他完全设置。 这些类中只有一个具有单一颜色; 在任何其他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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM