Android响应式设计

时间:2013-12-19 12:29:52

标签: android android-layout responsive-design

需要做响应式设计这部分活动,但有很多问题。

首先,不能将@+id/bookstore_layoutTop布局设置为match_parent值,因为顶级父relativelayout会将其扩展到活动结束。这个问题需要更多问题来调整标题和地址文本。

这是我的xml结构。

我该怎么办?有些想法?提前谢谢。

To do

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <RelativeLayout
            android:id="@+id/bookstore_bk_top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical" >

            <ImageView
                android:id="@+id/bookstore_tab_top"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:contentDescription="@string/image"
                android:scaleType="fitXY"
                android:src="@drawable/bookstore_tab_top" />

            <LinearLayout
                android:id="@+id/bookstore_layoutTop"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_gravity="center"
                android:orientation="horizontal" >

                <ImageView
                    android:id="@+id/bookstore_imgLogo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:contentDescription="@string/image"
                    android:layout_weight="10"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_launcher" />

                <LinearLayout
                    android:id="@+id/bookstore_layoutTop"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="5"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:orientation="vertical"
                        android:paddingLeft="30dp"
                        android:paddingTop="32dp" >

                        <TextView
                            android:id="@+id/bookstore_txtName"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="NOMBRE DE LIBRERIA" />

                        <TextView
                            android:id="@+id/bookstore_txtAddress"
                            android:layout_width="match_parent"
                            android:layout_height="25sp"
                            android:layout_alignParentRight="true"
                            android:gravity="center_vertical|right"
                            android:text="Dirección de librería muuuuuu muuuuuuuuy larga."
                            android:textSize="10dp" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

这就是我最终的结果(我将背景留下了黑色,因为我没有其他图片来完成装饰):

enter image description here

此图片与320 * 480 @ 160dpi(mdpi)显示相关(为了更好 转移速度)。

无论如何,它从ldpi到hdpi都能很好地扩展(对于更高的分辨率,你会更好 准备更高分辨率的图形)

请注意,图片已缩小为 480 * 128 @ 240 dpi 并放入 的 RES /抽拉-HDPI

我还准备了“主页图标”和书店标识为240 dpi的图片 相同的文件夹

这是我的xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000"
    >
    <RelativeLayout
        android:id="@+id/bookstore_bk_top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        >
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:src="@drawable/bookstore_tab_top"
        />
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            >
            <ImageView
                android:id="@+id/imgLogo"
                android:layout_width="58dp"
                android:layout_height="58dp"
                android:layout_centerVertical="true"
                android:src="@drawable/bookstore_logo"
            />
            <TextView
                android:id="@+id/bookstore_txtName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:text="NOMBRE DE LIBRERIA"
                android:textColor="#f9daac"
                android:textSize="14dp"
                android:textStyle="bold"
                android:shadowColor="#000"
                android:shadowDx="2"
                android:shadowDy="2"
                android:shadowRadius="2"
            />
        </RelativeLayout>
    </RelativeLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/bookstore_bk_top"
        android:paddingTop="4dp"
        >
        <TextView
            android:id="@+id/spacer_left"
            android:layout_width="0dp"
            android:layout_weight="0.8"
            android:layout_height="wrap_content"
        />
        <TextView
            android:id="@+id/bookstore_txtAddress"
            android:layout_width="0dp"
            android:layout_weight="1.2"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:drawableLeft="@drawable/bookstore_home"
            android:drawablePadding="8dp"
            android:gravity="bottom|left"
            android:lines="2"
            android:text="C/Arzobispo Morcillo N°27\n50020 Zaragoza"
            android:textSize="10dp"
        />
    </LinearLayout>
</RelativeLayout>

希望它有所帮助。万一,接受我的回答和upvoting将不胜感激;)