我遇到过类似的问题,我的客户想要一个应用程序的漫游,整个屏幕必须变得更白(如他们所说:“透明”),除了按钮被解释一个重叠的讲话泡泡。
幸运的是,您的布局并不像我不得不使用的那样复杂:)
现在,您可以通过两种方式获得透明效果,可以有白色背景并调用所有视图setAlpha()方法,或者你可以创建一个半透明的白色覆盖。
如果您使用叠加层,则必须找到一种方法来显示叠加层中的不透明按钮。这可能会有点复杂。 如果使用第一个选项,您可以在不透明视图上设置Alpha(1)以使其显示出来。
setAlpha()方法仅适用于api版本11+,因此如果您定位的是早期版本,则可能需要稍微更复杂一些。在视图上设置阿尔法预蜂窝
例子:
布局的按钮(让他们不过你想要的,只是让他们相似的,所以你可以通过它们循环):
<LinearLayout
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:tag="image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/tile"/>
<TextView
android:tag="text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF000000"
android:text="button1"/>
</LinearLayout>
在你程序,当你想使按钮透明:
LinearLayout l = (LinearLayout) findViewById(R.id.button1);
((ImageView)l.findViewWithTag("image")).setAlpha(0x7F);
((TextView)l.findViewWithTag("text")).setTextColor(0x7F000000);
当你^ h ave决定如何创建透明度效果,您将不得不决定如何显示叠加文本/泡泡。您很可能希望将其放在整个布局顶部的单独图层中,以确保它不受新视图的影响。
实现此目的的一种方法是将您的根布局元素更改为FrameLayout,然后在此创建/显示。 e.g:
当显示的介绍,您可以设置隐藏的叠加视图表项目的位置的位置加以解释,文本更改为适当的串/资源并显示视图。
当介绍结束时,您重置所有按钮的alpha值,并将覆盖层的可见性设置为再次消失。
非常感谢您的回答!但是,我以某种方式没有得到代码的工作。你可以提供一些示例代码? (你不必为我写整个东西) – Force
我添加了一些代码来改变按钮的透明度,因为我意识到setAlpha()只存在于蜂窝中。我会随时更新一些示例代码。 – Jave
谢谢,现在它工作完美! :) – Force