私はあなたがやろうとしているのと同じことをしたいと思っています。あるフラグメントが別のフラグメントよりも「近い」効果を作成します。
Roboguyの回答は、リストアイテムに白い矢印の「セレクター」を配置する方法を処理します。影についてもっと具体的にしようと思います。
バックグラウンドセレクターの使用のもう1つの良い例は、GoogleIO2011アプリのソースコードにあります。ソースを取得したら、fragment_dashboard.xmlアイコンセレクターを確認します。
シャドウセパレータはグラデーションであり、ビューの左側に適用されます。2つの部分があります。
まず、「影」自体:
res / shadow_left.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="0"
android:startColor="#55000000"
android:endColor="#00000000"
/>
</shape>
次に、それを実際にレイアウトに適用するには、次のようにします。
layout / my_lower_layer
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<View
android:layout_width="20dp"
android:layout_height="fill_parent"
android:background="@drawable/fragment_shadow_left" />
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
これは、(私の知る限り)相対的なレイアウトで行う必要があります。線形レイアウトを使用している場合は、linearLayout全体を相対レイアウト内にラップしてから、グラデーションを追加することができます。
これを行う場合、グラデーション<View>
は<LinearLayout>
;を下回る必要があることに注意してください。そうしないと、グラデーションが線形レイアウトの下に描画されるため、グラデーションは表示されません。