好的,我已经查看了一些资料,了解到你应该如何做,但对于我来说,它并没有起作用。
我需要能够在XML和代码中设置RelativeLayout的透明度。对于我的XML,我有以下内容:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player_controls"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:alpha="0.0">
<RelativeLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/player_controls_touch_me"
>
</RelativeLayout>
</RelativeLayout>
我遇到了错误:
no resource identifier found for attribute 'alpha' in package 'android'
。根据Android文档,我应该能够在任何View对象上调用setAlpha(double)
方法,但是当我尝试在RelativeLayout上进行调用时,它告诉我该方法未定义于此对象。为什么我不能控制Android中RelativeLayout对象的透明度呢?我是否漏掉了什么?谢谢!更新:虽然使用visibility属性可以解决问题,但是它会使ViewGroup无法被点击。这对我很重要,因为我正在利用ViewGroup的OnTouchListener。我的目标是有一个带有媒体控件的层,一开始是隐藏的。当用户点击屏幕的任何位置时,我希望控件淡入,再次点击屏幕时,我希望控件淡出。我已经实现了这部分功能。我使用一个覆盖整个应用程序的viewgroup,并附加了一个OnTouchListener来确定它是否被触摸。我的问题是,在动画运行以淡出控件后,它们会重新出现。如果我使用@Hydrangea的建议,我可以让它淡出并立即变为不可见。这给了我想要的效果,但是ViewGroup无法被点击,用户无法让控件回来(或者首先消失,具体取决于我们决定做什么)。希望我的解释清晰明了。
setFillAfter(true)
,而不是将视图设置为INVISIBLE
或GONE
。这将使视图在动画完成运行后呈现透明状态。 - Yoni Samlan