0

ここに問題があります...テキストと追加のグラフィックスが必要な画像の背景があります。背景画像は画面の中央に配置する必要があり、伸びない場合があります。これが私がしなければならないことです:

ここに画像の説明を入力

問題は、テキストを背景画像に揃える必要があることです。私はそれをすべて相対レイアウトにラップしようとしました-次のようなものです:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/bg_image"
        android:layout_centerInParent="true"
        android:src="@drawable/member_card"/>

<TextView
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/bg_image"
        android:text="@string/membercard_info"
        android:layout_marginTop="40dp"
        />

<TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignLeft="@id/bg_image"
        android:layout_marginTop="200dp"
        />
</RelativeLayout>

Android は画像が伸びないように追加のパディングを追加するため、これは機能しません。2 つの異なるケースで何が起こるかを次に示します。 ここに画像の説明を入力ここに画像の説明を入力

では、テキストを背景画像に揃えるにはどうすればよいでしょうか。

過去にこの問題をすべて 1 つのイメージに焼き付けることでコードで解決しましたが、これを xml で行いたいと考えています。

4

3 に答える 3

0

パディングを削除したい場合は、手動で設定できます。ただし、要素を重ねる場合は、通常は FrameLayout を使用します。こちらをご覧ください: http://mobile.tutsplus.com/tutorials/android/android-sdk_frame-layout/

フレーム レイアウト内に重力を設定して整列させます。

于 2013-08-05T08:33:02.880 に答える
0

親を埋めるように imageView サイズを設定したため ( を使用match_parent) 、画像の周りにパディングがあります。

コンテンツをラップするように設定する必要があります:

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        .../>

編集 :画像が画面サイズよりも大きい場合は、縦横比を維持して拡大縮小する必要があります。

これを行うには、 scaleTypematch_parentで垂直方向に使用し、幅の設定を 維持します (画像ビューの左/右境界を画像コンテンツに貼り付けたいため)FIT_CENTERwrap_content

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:scaleType="fitCenter"
        .../>

これは良いですか?

于 2013-08-05T08:36:54.733 に答える
0

その上に追加のレイヤーが描画された ImageView が必要な場合は、次のスレッドを参照してください

于 2013-08-05T08:44:14.440 に答える