获取ImageView的alpha

时间:2010-08-03 20:00:07

标签: android

我该怎么做?有一个setAlpha但没有getAlpha。

5 个答案:

答案 0 :(得分:2)

这里你去View.ALPHA.get(View)

您可以将它与if语句一起使用以获取布尔值并检查视图的当前alpha状态。

答案 1 :(得分:1)

如果有人只需要获取并设置控件可见性,getVisibility和setVisibility可能是您可以使用的替代方法:

if(vw.getVisibility() == View.VISIBLE)
{
    // do something
}

您可以设置可见性:

vw.setVisibility(View.INVISIBLE);

答案 2 :(得分:0)

实际上,您需要使用getOpacity(),因为仅针对ColorDrawableTransformation和其他一些内容提供alpha版本。你需要在ImageView的drawable上使用它而不是视图本身。

答案 3 :(得分:0)

没有简单的方法可以做到这一点。这是因为ImageView可能已设置为BitmapStateListDrawableColorDrawable或其他完全匹配。这些类中只有一个具有单一颜色;在任何其他drawable上,每个像素的alpha可能不同(像素为ARGB格式,每个字母为1字节,分别为alpha,red,green和blue)。我很确定setAlpha()方法仅适用于支持它的drawables,如上面Sephy所述。

您对图像的透明度究竟需要了解什么?如果你知道ImageView将提前填充什么,那么也许你可以预先提取alpha。如果您无法直接访问alpha,但是您可以确定颜色,那么alpha将等于color >>> 24

答案 4 :(得分:0)

你不能直接。您可以解决方法,只要您以编程方式设置alpha,就可以在设置时保留alpha值。 E.g:

private int mCurrentAlpha;

private void setAlpha(int newAlpha){
   mCurrentAlpha=newAlpha;
   ImageView imageView=...
   imageView.setAlpha(mCurrentAlpha);
}