8

私が望むことをする投稿を見つけることができませんでした...私は長方形を持っています:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="#FFFFFF" />
<padding android:left="4dp"
    android:top="4dp"
    android:right="4dp"
    android:bottom="4dp" />
<corners android:radius="6dp" />
<gradient
        android:angle="90"
        android:startColor="#FF000000"
        android:centerColor="#FF000000"
        android:endColor="#FF0000cd"
        android:type="linear" />

上記の形状は、 の背景属性として使用されますRelativeLayout

<RelativeLayout
    android:id="@+id/layoutBottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:animation="@anim/slide_top_to_bottom"
    android:background="@drawable/rectangle4"
    android:orientation="vertical" >

この長方形のさまざまなグラデーションをゆっくりとフェードインおよびフェードアウトしたいと考えています。問題は、RelativeLayoutコンテンツの変更に応じてサイズが動的に変更されるため、画像ファイルを背景として使用することはできません (実際、これにより、頻繁に変更されるレイアウトのテキスト コンテンツが非表示になります)。android:background属性を削除して画像ファイルを使用しようとしましたRelativeLayoutが、wrap_content を使用する必要があり、この画像ファイルをテキストビューが占有する前にコードに配置する必要があるため、この画像が画面全体を占有しますRelativeLayout(そうしないと、テキストは画像)。android:backgroundアルファ トゥイーン アニメーションの作成方法は知っていますが、属性をアニメーションに割り当てる方法がわかりません。何か案は?

4

1 に答える 1

10

フェードした背景とフェードしていない背景に使用する 2 つのドローアブル間でフェードする TransitionDrawable を作成します。

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- use whatever drawables you want, gradients, shapes etc-->
    <item android:drawable="@drawable/faded" />
    <item android:drawable="@drawable/unfaded" />
</transition>

http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html

次に、コードで使用して、遷移を開始します。2 秒 (2000 ミリ秒) をハードコーディングしました

TransitionDrawable trans = (TransitionDrawable) myLayout.getBackground();
trans.startTransition(2000);
于 2013-01-19T08:07:46.413 に答える