2013-01-17 58 views
4

我想達成的目標是像在畫面效果: enter image description here如何創建視圖部分隱形

所以基本上有一個TextView慢慢消失。我不希望整個View被製成例如50%透明,而是例如左邊的一部分是0%透明,並且它在右邊順利地進入100%透明。

我知道某些組件(例如ListView)使用這種方法,但可以用相當簡單的方法手動執行它嗎?

在此先感謝您的答案

+3

使用從0到100%alpha的從左到右漸變透明度創建一個視圖。用定時器將該視圖左右移動到TextView左邊或使用動畫。 – Simon

+0

謝謝西蒙。請把它寫成答案。所以我會接受它。 –

回答

6

首先,用alpha漸變創建一個形狀。將XML放入可繪製目錄。我們稱之爲gradient_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:angle="90" 
     android:startColor="#FFFFFFFF" 
     android:endColor="#00FFFFFF" 
     android:type="linear"/> 
</shape> 

現在在您的佈局中創建一個視圖到您的TextView的右側。您需要適當地設置寬度和高度,並根據需要放置在您的視圖中(RelativeLayout with layout_toTheRightOf可以很好地工作)。

<View android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:background="@drawable/gradient_view"/> 

在您的代碼的正確位置爲其設置動畫效果。將-200更改爲任何你需要的東西(甚至更好,找到你的梯度視圖的左邊X,並減去TextView的左邊緣以找到移動的量)。

TranslationAnimation anim = new TranslateAnimation(0, -200, 0, 0); 
anim.setDuration(1000); 
myTextView.startAnimation(anim); 

http://developer.android.com/reference/android/view/animation/TranslateAnimation.html

有一點更多的工作要做,但是這是你最需要什麼。

祝你好運

+0

再次感謝。 :-) –