好吧,我环顾四周,我明白了你应该如何做,但对我来说,这是行不通的。
我需要能够在 XML 和代码中设置relativelayout 的 alpha。对于我的 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文档,我应该能够调用setAlpha(double)
在任何 View 对象上,但是当我尝试在relativelayout上进行该调用时,它告诉我没有为此对象定义此方法。
为什么我无法控制 Android 中的relativelayout对象的alpha透明度?我错过了什么吗?谢谢!
Update
尽管使用可见性属性有效,但它阻止我单击 ViewGroup。这对我来说很重要,因为我正在利用 ViewGroup 的 OnTouchListener。
我想做的是有一个带有媒体控件的图层,最初是隐藏的。当用户点击屏幕上的任何位置时,我希望控件淡入,当他们再次点击屏幕时,我希望控件淡出。我已经有这部分工作了。我使用的视图组位于整个应用程序之上,并附加了 OnTouchListener,可以确定它是否已被触摸。我的问题是,在动画运行以淡出控件后,它们会重新出现。如果我使用@Hydrangea 建议,我可以让它淡出并立即变得不可见。这给了我想要的效果,但是 ViewGroup 是不可点击的,用户无法让控件返回(或消失,取决于我们决定首先做什么)。
我希望这是有道理的。
您需要使用 Alpha 动画来淡入和淡出内容。这将为您的布局保留触摸事件。这是一个例子
public class Main extends Activity {
/** Called when the activity is first created. */
private boolean mShowing = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.textview).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
if(mShowing){
Animation animation = new AlphaAnimation(1.0f, 0.0f);
animation.setFillAfter(true);
arg0.startAnimation(animation);
} else {
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setFillAfter(true);
arg0.startAnimation(animation);
}
mShowing = !mShowing;
}
});
}
}
这是随附的 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:clickable="true"
/>
</LinearLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)