我该怎么做?有一个setAlpha但没有getAlpha。
答案 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()
,因为仅针对ColorDrawable
,Transformation
和其他一些内容提供alpha版本。你需要在ImageView
的drawable上使用它而不是视图本身。
答案 3 :(得分:0)
没有简单的方法可以做到这一点。这是因为ImageView
可能已设置为Bitmap
,StateListDrawable
,ColorDrawable
或其他完全匹配。这些类中只有一个具有单一颜色;在任何其他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);
}