我正在尝试使用透明标题构建类似的listView,例如Attaching a fixed, transparent, header to a ListView? 但是我怎样才能改变标题不透明度? 我尝试使用颜色代码使用alpha:“#00bebebe”但是没有用。
我的标题背景“title_bar_background”
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Top color -->
<item android:bottom="20dip">
<shape android:shape="rectangle">
<solid android:color="#bebebe"
/>
</shape>
</item>
<!-- Bottom color -->
<item android:top="20dip">
<shape android:shape="rectangle">
<solid android:color="#696969" />
</shape>
</item>
</layer-list>
我的标题布局“custom_title”
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
....
android:background="@drawable/title_bar_background"
android:id="@+id/customLayout"
>
我的listView包含custom_title
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
..... >
<include
layout="@layout/custom_title"
android:layout_height="40dip"
android:layout_width="fill_parent"/>
这项改变不透明度的工作
View backgroundImg = findViewById(R.id.mycustomLayout);
Drawable background = backgroundImg.getBackground();
background.setAlpha(40);
但只有当我不在其他布局中包含该布局时它才有效。但是当我在其他布局中包含该布局时,我怎么能设置不透明度? (就像我上面的xml布局一样)
答案 0 :(得分:1)
按ID查找布局,并通过设置Alpha来更改不透明度。
答案 1 :(得分:-1)
只需通过它的ID找到您的标题布局,并执行以下操作:
LinearLayout headerLayout = (LinearLayout)findViewById(R.id.layoutHeader);
AlphaAnimation alpha = new AlphaAnimation(0.5F, 0.5F);
alpha.setDuration(0); // Make animation instant
alpha.setFillAfter(true); // Tell it to persist after the animation ends
// And then on your layout
headerLayout.startAnimation(alpha);
还有View.setAlpha()
;但它是自API级别11以来。
编辑:
我们认为你的布局在另一个布局中:
<RelativeLayout android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView ...
bla bla bla />
<LinearLayout android:id="@+id/transparentLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
... your views
</LinearLayout>
...some other views
</RelativeLayout>
然后你就是这样:
LinearLayout mytransparentLayout = (LinearLayout) findViewById(R.id.transparentLayout);
mytransparentLayout.setAlpha(0.5f);