放置在ViewFlipper上时忽略ImageView的背景属性

问题描述:

我有一个包含FrameLayout和两个视图的Activity。第一个是ViewFlipper,第二个是ImageView。如果我注释掉ViewFlipper,该活动将正确呈现ImageView及其背景,但是当ViewFlipper可见时,ImageView的背景将被完全忽略。放置在ViewFlipper上时忽略ImageView的背景属性

这是ViewFlipper的“功能”吗?有没有办法解决这个问题?

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@android:color/background_light" 
     >   
    <ViewFlipper android:id="@+id/flipper" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:flipInterval="5000" 
     > 
       <include layout="@layout/cell_1" android:id="@+id/cell_1"/> 
       <include layout="@layout/cell_2" android:id="@+id/cell_2"/> 
       <include layout="@layout/cell_3" android:id="@+id/cell_3"/> 
    </ViewFlipper> 
    <ImageView 
     android:background="@drawable/alpha_gradient_background" 
     android:id="@+id/statusIcon" 
     android:src="@drawable/status_icon" 
     android:padding="5dp" 
     android:layout_gravity="right" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:top="10dp" 
     android:right="10dp" 
     /> 
</FrameLayout> 

而且我的背景绘制这个样子的:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <stroke android:width="3dp" android:color="#ffff0000" /> 
    <gradient 
     android:startColor="#66660000" 
     android:centerColor="#66006600" 
     android:endColor="#66000066" 
     android:angle="270" 
    /> 
</shape> 

看来,按钮是能够当放置在ViewFlipper来渲染他们的背景。

因此,我通过创建一个部分透明的PNG并将其设置为按钮上的背景图像来解决此问题。