1. ホーム
  2. アンドロイド

[解決済み】androidでビューを別のビューの上に配置/オーバーラップ(z-index)

2022-04-01 14:12:53

質問

リニアレイアウトで、イメージビューとテキストビューを1つずつ下に配置したものがあります。

<LinearLayout android:orientation="horizontal" ... >
 <ImageView 
     android:id="@+id/thumbnail"
     android:layout_weight="0.8" 
     android:layout_width="0dip"
     android:layout_height="fill_parent">
 </ImageView>
 <TextView 
    android:id="@+id/description"
    android:layout_weight="0.2"
    android:layout_width="0dip"
    android:layout_height="wrap_content">
 </TextView>

いくつかのルールが欠けているかもしれませんが、これはレイアウトがどのように見えるかのアイデアを与えるためのものです。 私は、縦横50dipほどの小さなテキストビューをイメージビューの上に配置したいのですが、quot;over"というのは、z-indexがイメージビューより大きいという意味で、これを中心にイメージビューの上(重なり)に配置したいのです。

私は、z-indexを変化させながら、1つのビューを他のビューの上に配置する方法を知りたいのです(できればリニアレイアウトで)?

解決方法は?

この場合、LinearLayoutは使えませんが FrameLayout . には FrameLayout のように、z-indexは項目が追加される順序で定義されます。

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/my_drawable"
        android:scaleType="fitCenter"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:padding="5dp"
        android:text="My Label"
        />
</FrameLayout>

この例では、TextViewはImageViewの上に、画像の下部中央に沿うように描画されることになります。