2

活動の背景に画像を配置したいと考えています。この画像は事実上、半透明の円形のロゴであり、UI の他のコンテンツの背後に配置する必要があります。また、下隅にオフセットします。

この画像をさまざまな画面サイズで「押しつぶされた」(卵形に) ならずに配置できる最善の方法は何ですか? 私のアプリは縦向きモードでのみ動作します。

これは私が達成しようとしているものです:

ここに画像の説明を入力

これまでのところ、円の画像を一般的なサイズの画面用の 3 つの白い長方形のキャンバスに配置しました。これ480x854320x480うまく240x320いくようですが、あまりしっかりしているとは思いません。

任意のヒント?

4

2 に答える 2

1

これはおそらく完璧な解決策ではなく、UI のメンテナンスが少し必要になりますが、私の考えは次のとおりです。

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_marginRight="-15dp"
        android:layout_marginBottom="-15dp"
        android:src="@drawable/circle"
        />
    <!--Rest of Layout goes here-->
</FrameLayout>

これを現在のレイアウトにラップし、右マージンと下マージンをオフセットに必要な負のマージンに調整します。各密度のドローアブルがあると仮定すると、これはどの画面サイズでも機能するはずです。

編集: ええ、このように白い四角形についても心配する必要はありません。android:background背景に必要な色を使用してタグを FrameLayout に追加し、ロゴを透明な PNG として保存するだけです。

于 2011-04-16T21:03:42.907 に答える
1

私はこのようにします。相対レイアウトを使用して、背景に ImageView を配置し、その上に残りのレイアウトを含む相対レイアウトを配置します。

このようにして、画像は正しい寸法を維持できる限り大きくなります

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:scaleType="centerInside"
        android:src="@drawable/splash_picture"/>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">
        <!-- rest of your layout -->
    </LinearLayout>
</RelativeLayout>
于 2011-04-16T21:38:24.107 に答える