在Android中重叠视图

时间:2009-06-07 14:10:20

标签: android view android-relativelayout

Android中可能有重叠的视图吗?我想要一个ImageView,前面有透明的png,后面有另一个视图。

编辑:

这就是我目前的问题,问题是imageView中的图像不透明,应该透明的部分只是黑色。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/gallerylayout"
>
<Gallery android:id="@+id/overview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />

 <ImageView android:id="@+id/navigmaske"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/navigmask"
    /> 

</RelativeLayout>

编辑:

我得到了它的工作,这是团队中另一位程序员的主题文件。 刚刚改变了这个

<item name="android:background">#FF000000</item>

到这个

<item name="android:background">#00000000</item>

6 个答案:

答案 0 :(得分:68)

Android本地处理视图和绘图(包括PNG图像)之间的透明度,因此您描述的场景(ImageView前面的部分透明Gallery)肯定是可能的。

如果您遇到问题,可能与布局或图片有关。我已经复制了你描述的布局并成功实现了你想要的效果。这是我使用的确切布局。

<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gallerylayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <Gallery
    android:id="@+id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
  <ImageView
    android:id="@+id/navigmaske"
    android:background="#0000"      
    android:src="@drawable/navigmask"
    android:scaleType="fitXY"
    android:layout_alignTop="@id/overview"
    android:layout_alignBottom="@id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
</RelativeLayout>

请注意,我已将父RelativeLayout更改为fill_parent的高度和宽度,这通常是您想要的主活动。然后我将ImageView的顶部和底部对齐到Gallery的顶部和底部,以确保它位于其前面。

我还明确将ImageView的背景设置为透明。

至于图像绘制本身,如果你把PNG文件放在某个地方供我查看,我可以在我的项目中使用它,看看它是否有责任。

答案 1 :(得分:9)

另外,请查看FrameLayout,这是相机的图库应用程序实现缩放按钮叠加的方式。

答案 2 :(得分:7)

如果要在布局上添加自定义叠加屏幕,可以创建自定义线性布局并控制绘图和关键事件。您可以在Android布局上覆盖我的教程 - 覆盖 - http://prasanta-paul.blogspot.com/2010/08/overlay-on-android-layout.html

答案 3 :(得分:1)

可见图库会更改可见性,这是​​您在其他视图重叠时获取图库的方式。 Home示例应用程序有一些很好的例子。

答案 4 :(得分:0)

最简单的方法是将-40dp边距放在顶部imageview的底部

答案 5 :(得分:-2)

是的,这是可能的。然而,挑战在于正确地进行布局。最简单的方法是使用AbsoluteLayout,然后将两个图像放在您想要的位置。除了稍后将其添加到布局中之外,您不需要对透明png执行任何特殊操作。