具有Android布局的保证金问题(ScrollView& Linear)

时间:2012-12-04 15:16:52

标签: android android-layout scrollview margin android-scrollview

问题:

我试图删除图像/视图之间的空间,使其看起来好像背景实际上是一个图像。不同的方法或解决这个问题的方法将不胜感激。

示例图片: enter image description here

    <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#edeab5">

    <ImageView
        android:id="@+id/bgnewsfeedtop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="0dp"
        android:src="@drawable/newsfeedtop" />

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_margin="0dp"
    android:layout_weight="1"
    android:orientation="horizontal" >

<ImageView
    android:id="@+id/bgnewsfeedleft"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:src="@drawable/newsfeedleft" />

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:src="@drawable/newsfeedbg" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:cacheColorHint="@android:color/transparent"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/btn1_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn2_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn3_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn4_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn5_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn6_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn7_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />
        </LinearLayout>
    </ScrollView>

    <ImageView
    android:id="@+id/bgnewsfeedright"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:src="@drawable/newsfeedright" />
</LinearLayout>

<ImageView
    android:id="@+id/bgnewsfeedbot"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="0dp"
    android:src="@drawable/newsfeedbot" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="75dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>
</LinearLayout>

EDIT ****

提供帮助后,修改后的代码和图片:

<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="#edeab5" >


   <View
        android:id="@+id/newstop"
        android:layout_width="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_height="15dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedtop"
        />

   <View
        android:id="@+id/newsleft"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_marginLeft="10dp"
        android:background="@drawable/newsfeedleft"

        android:layout_toLeftOf="@+id/scroller"
        android:layout_below="@+id/newstop"
        android:layout_above="@+id/newsbottom"
        />

   <View
        android:id="@+id/newsleft"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedright"

        android:layout_toRightOf="@+id/scroller"
        android:layout_below="@+id/newstop"
        android:layout_above="@+id/newsbottom"
        />


   <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="150dp"
        android:layout_centerInParent="true"
        android:fillViewport="true"
        android:background="#000000"
        android:layout_below="@+id/newstop">

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#cc0000" >



            <ImageView
                android:id="@+id/btn1_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn2_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn1_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name"/>

            <ImageView
                android:id="@+id/btn3_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn2_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn4_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn3_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn5_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn4_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />


            </RelativeLayout>
            </ScrollView>

   <View
        android:id="@+id/newsbottom"
        android:layout_width="fill_parent"
        android:layout_height="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedbot"
        android:layout_below="@+id/scroller"
        />

   <LinearLayout
    android:id="@+id/buttonsrow1"
    android:layout_width="fill_parent"
    android:layout_height="75dp"
    android:orientation="horizontal"
    android:layout_marginTop="12dp"
    android:layout_below="@+id/newsbottom">

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

   <LinearLayout
       android:id="@+id/buttonsrow2"
       android:layout_width="fill_parent"
       android:layout_height="75dp"
       android:layout_below="@+id/buttonsrow1"
       android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

   </RelativeLayout>

enter image description here

2 个答案:

答案 0 :(得分:1)

你在谈论黑线吗?我不认为我理解你的问题......

您正在使用&#34;手动列表视图&#34; (我的意思是:您应该使用listview和自定义适配器来添加N个新闻源,而不是使用scrollview和linearlayout:

android:layout_margin="2dp"

设置右,左,上,下边距。这样做:

android:layout_marginRight="2dp"
android:layout_marginLeft="2dp"

答案 1 :(得分:0)

您是否已经完成了相对布局的工作?

这就是我解决这个问题的方法。 您可以通过

为每个视图指定一个ID
android:id = "@+id/whateveryouwanttonameit"

然后你可以通过reffering到这个ID来对齐其他视图。

例如:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:id="@+id/newGameButton"
    android:text="@string/newGameButton"
    android:background="@drawable/newgame"
    android:contentDescription="@string/feld"/>

<ImageView 
    android:layout_alignLeft="@id/newGameButton"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_above="@id/newGameButton"
    android:src="@drawable/x"
    android:id="@+id/sp2"
    android:contentDescription="@string/feld"/>

在此示例中,ImageViews左边缘通过使用以下方式与ImageButton的左边缘对齐:

android:layout_alignLeft="@id/newGameButton"

它也恰好位于newGameButton上方,添加

之间没有任何空格
android:align_above="@id/newGameButton"

这样您就可以构建整个活动布局。

所以这是一个例子:

<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="#FFFFFF" >


   <View
        android:layout_width="fill_parent"
        android:layout_height="15dp"
        android:background="#FF0000"
        android:layout_above="@id/scroller"
        />


   <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:fillViewport="true"
        android:background="#000000">

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00FF00" >



            <ImageView
                android:id="@+id/btn1_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn2_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn1_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name"/>

            <ImageView
                android:id="@+id/btn3_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn2_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn4_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn3_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn5_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn4_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />


            </RelativeLayout>
            </ScrollView>


   </RelativeLayout>

给了我这个布局:

layout

我保留了margin属性,并将scrollview的背景设为绿色。

使用以下属性我进行了布局。

只是为了向您展示如果您没有定义元素之间没有空格我添加了一个没有边距属性的红色视图元素。

我还没有为你完成整个布局,只是复制了一些,以展示如何使用RelativeLayout来完成它。我希望这对你有用;)