2011-08-19 48 views
0

我定義爲繪製形狀:ImageView的不希望它被setAlpha()隱藏後出現

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <solid android:color="#0075b5"/> 
    <size android:height="2dp"/> 
</shape> 

我用這種形狀在ImageView的源:

<ImageView android:layout_height="2dp" 
      android:layout_width="fill_parent" 
      android:src="@drawable/shape_blue_line" 
      android:id="@+id/ptt_blueLineImageView"/> 

的問題出現時,我想我的切換的ImageView:

private void toggleAnimatedLogo() { 
     if (viewFlipper.getDisplayedChild() == 2) { 
      animatedLogo.setAlpha(ALHPA_TRANSPARENT); 
      blueLine.setAlpha(ALHPA_TRANSPARENT); 
     } else { 
      animatedLogo.setAlpha(ALHPA_VISIBLE); 
      blueLine.setAlpha(ALHPA_VISIBLE); 
     } 
    } 

其結果是,這種方法的第一次執行兩個ImageViews消失,但只有動畫的出現在第二個。消失後的線路根本不想顯示。我想有一個工作切換方法。

回答

1

使用View.setVisibility()可以更好地完成此操作,如果您仍想要ImageView佈局或View.Gone(如果您希望忽略佈局),請使用View.INVISIBLE

+0

我已經試過這一點 - 它不工作的。 (我認爲他們正在使用下面的setAlpha()) –

+0

此外,如果我在我的動畫ImageView上使用setVisibility()它不會隱藏... –

+0

你調用了[View.clearAnimation()](http:// developer .android.com /參考/機器人/視圖/ View.html#clearAnimation())。 –

0

所以這真是奇怪的ImageView行爲。在佈局文件中對佈局文件進行了一些佈局更改後,這些代碼開始正常工作。任何人都知道爲什麼會發生?

無論如何,我已經在佈局xml中將此代碼粘貼到我的blueLine上方之後發現此問題。上一行開始工作。再次切割後仍然可以工作。

<View android:layout_height="2dp" 
     android:layout_width="fill_parent" 
     android:id="@+id/ptt_blueLineView" 
     android:background="#0075b5"/> 

最終,我決定留在行,放棄形狀的這個新版本...