36

ImageView の昇格が機能していません。次のように XML で ImageView を宣言しました。

<ImageView
        android:id="@+id/image"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:elevation="10dp"
        android:src="@drawable/youtube" />

エレベーションが ImageView で適切に機能するには、他に何をすればよいですか?

4

8 に答える 8

40

仰角の影は、View の描画可能な背景から派生します。ImageView に背景がない場合、影は表示されません。

その動作を変更したい場合は、独自のものを作成しViewOutlineProvider、呼び出しView.setOutlineProvider()て設定する必要があります (これは簡単なことではありません)。

于 2015-06-04T10:14:12.280 に答える
12

すべての最新バージョンで動作

CardView を親レイアウトとして使用します。ImageViewandroid:background="@drawable/your_img"の代わりに使用します。android:src="@drawable/your_img"

<android.support.v7.widget.CardView
    android:layout_gravity="center_horizontal"        
    app:cardElevation="5dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView       
        android:id="@+id/image"
        android:background="@drawable/your_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@null" />

</android.support.v7.widget.CardView>
于 2017-02-10T10:45:42.093 に答える
3

CardView を使用している場合は、必ず CardView の背景を透明のままにしてください。

<android.support.v7.widget.CardView
                android:layout_gravity="center_horizontal"
                app:cardElevation="@dimen/cardview_default_elevation"
                app:cardBackgroundColor="@android:color/transparent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
<ImageView
        android:id="@+id/image"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:src="@drawable/youtube" />

</android.support.v7.widget.CardView>
于 2017-12-23T14:18:53.227 に答える
0

android:src を使用する代わりに、影を表示するために android:background に変更する必要があります。

 <ImageView
    android:id="@+id/image"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:elevation="10dp"
    android:background="@drawable/youtube" />
于 2015-08-11T07:19:13.533 に答える
0

そのLollipop上で標高を設定します。pre-Lollipop,自分でシャドウを実装する必要があるためです。Support-v4ソースをViewCompat.setElevation(view, value)確認すると実装がありません。(少なくとも、執筆時点では)。

于 2015-06-04T10:18:41.937 に答える