如何根据屏幕大小扩展android中的布局?

时间:2017-03-03 16:16:49

标签: android android-layout android-gridlayout

我需要创建6个图像或按钮,就像它在图片上的蓝色单元格上显示的那样,动作栏存在alredy,黑色是存在的图片,广告横幅存在且效果很好。所以我需要添加6个蓝色细胞图像。 这是旧代码

img

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/White"
tools:context=".Activity_Home" 

<include
    android:id="@+id/top_bar"
    android:layout_alignParentTop="true"
    layout="@layout/top_bar" />

<include
    android:id="@+id/bottom_layout"
    android:layout_alignParentBottom="true"
    layout="@layout/bottomlayout" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/bottom_layout"
    android:layout_below="@id/top_bar"
    android:orientation="vertical"
    android:weightSum="5" >

    <!--
    <ImageView
        android:id="@+id/app_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:contentDescription="app_image"
        android:scaleType="fitXY"
        android:src="@drawable/dashboard_image" />
        -->

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/img_1"
        android:layout_weight="1.5"
        android:layout_margin="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/img_not_connected"
        android:visibility="gone" />


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/img_2"
        android:layout_weight="1.5"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/img_2"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/app_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:scaleType="fitXY" />
    <!-- I removed this ListView -->
    <ListView
        android:id="@+id/event_list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:divider="@null"
        android:visibility="visible">
    </ListView>
</LinearLayout>

</RelativeLayout>

这是我创建的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/White"
tools:context=".Activity_Home" >

<include
    android:id="@+id/top_bar"
    android:layout_alignParentTop="true"
    layout="@layout/top_bar" />

<include
    android:id="@+id/bottom_layout"
    android:layout_alignParentBottom="true"
    layout="@layout/bottomlayout" />


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/bottom_layout"
    android:layout_below="@id/top_bar"
    android:orientation="vertical"
    android:weightSum="5" >

    <!--
    <ImageView
        android:id="@+id/app_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:contentDescription="app_image"
        android:scaleType="fitXY"
        android:src="@drawable/dashboard_image" />
        -->

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/img_1"
        android:layout_weight="1.5"
        android:layout_margin="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/img_not_connected"
        android:visibility="gone" />


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/img_2"
        android:layout_weight="1.5"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/img_2"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/app_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:scaleType="fitXY" />

    <!-- I have added this GridLayout and ImageViews in it  -->
    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:columnCount="2"
        android:rowCount="3"
        android:divider="@null"
        android:visibility="visible">


        <ImageView
            android:id="@+id/image3"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_exibhome" />

        <ImageView
            android:id="@+id/image3"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_exibhome" />

        <ImageView
            android:id="@+id/image3"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_exibhome" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_loginticket" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_loginticket" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_margin="4dp"
            android:layout_columnWeight="1"
            android:gravity="center"
            android:scaleType="fitXY"
            android:layout_gravity="fill_horizontal"
            android:src="@drawable/img_loginticket" />

    </GridLayout>

</LinearLayout>

任务是删除listview内容并添加六个单元格,如我在蓝色单元格中显示的那样。我试图在gridlayout中做到这一点,它在手机上运行良好,但在平板电脑上却没有,在平板电脑上它会扭曲6张图像。所以我的问题是如何以编程方式完成任务以使其适合所有屏幕?另外的想法是,如果不存在广告横幅,则Ui组件应该伸展以占据缺少添加横幅的空间。这可能是用xml创建的,还是应该以编程方式完成?

0 个答案:

没有答案