我想在背景图片上设置透明度。我在xml中尝试了android:alpha,但它什么也没做。我使用setAlpha(int alpha),并且运行良好,但它已弃用,所以我想要另一个解决方案(因为它可能会在将来被删除)。有setImageAlpha和setAlpha(float alpha),但这些在api lvl 10中不可用(这是我的目标)。所以我的问题是: 对于API为10或更低的设备,setAlpha(int alpha)的替代是什么(我只想提一下,超过1/4的所有设备都使用API 10或更低版本)。当我检查stackoverflow时,大多数人仍然建议setAlpha(int alpha),但正如我所说 - 它已被弃用...
答案 0 :(得分:6)
ImageView
setAlpha在API级别16之前未被弃用。处理这种情况的正确方法是继续使用它,直到您可以定位最低SDK级别16,然后只需切换到{{1} } setAlpha。
弃用只是意味着如果您有替代方案,不要在新开发中使用。由于谷歌没有提供替代方案(即通过兼容性库),他们肯定不会删除它并打破手机上已有的无数应用程序。
考虑到自己很幸运,你正在处理ImageView,因为它有一个你可以使用的setAlpha!
答案 1 :(得分:1)
ImageView iv_object;
void updateAlpha(View v)
{
v.setAlpha(1);
}
我修改了updateAlpha(iv_object)
的弃用问题,因为View不会弃用setAlpha()
。如果我错了任何一点,请纠正我。优点是将任何View类对象传递给该方法。
答案 2 :(得分:1)
您应该在API中使用ImageView.setAlpha(int)
< API 16+中的16和ImageView.setImageAlpha(int)
。它们是相同的方法。
ImageView.setAlpha(int)
已重命名为ImageView.setImageAlpha(int)
,以避免与View.setAlpha(float)
混淆,后者不会做同样的事情。前者在绘制时更改源图像的alpha(这是一个相对便宜的操作),而后者更改整个视图的alpha,这需要分配一个临时缓冲区来绘制视图并将alpha应用于该缓冲区。
答案 3 :(得分:0)
这对我来说很好用:
public void setAlpha(float alpha)在API级别11中添加
设置视图的不透明度。这是一个从0到1的值,其中0 表示视图完全透明,1表示视图 完全不透明。
答案 4 :(得分:-1)
使用: yourImage.setVisibility(View.INVISIBLE);
0 ==隐身。