6

私が達成したいのは、写真のような効果です: ここに画像の説明を入力

つまり、基本的にはTextViewゆっくりと消える があります。全体Viewをたとえば 50% 透明にするのではなく、たとえば左側の部分を 0% 透明にして、右側でスムーズに 100% 透明にする必要があります。

一部のコンポーネント (例: ) がこれを使用していることは知っていますListViewが、非常に簡単な方法で手動で行うことは可能ですか?

回答ありがとうございます

4

1 に答える 1

8

まず、アルファグラデーションを使用して形状を作成します。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の右側のレイアウトにビューを作成します。幅と高さを適切に設定し、必要に応じてビュー内に配置する必要があります(layout_toTheRightOfを指定したRelativeLayoutが適切に機能します)。

<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

やるべきことはもう少しありますが、これがあなたが必要とすることのほとんどです。

幸運を

于 2013-01-17T16:08:37.613 に答える