Android布局设计及实现的问题

图片说明
实现如图片的效果,该图片仅为ListView的一个item。Item的大布局为RelativeLayout(其背景是圆角图片),内部的图片为ImageView,第一行字为一个TextView,第二行字及按钮为LinearLayout。问题有:1、图片不能靠顶填充,左右有间隙或上下有间隙,即使使用match_parent;2、最后一行文字距底部的空隙过大,设置padding、margin等无效果。
请各位看官给点意见,拜谢~

附List_view_item.xml

<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_topic_item_bg"
android:layout_gravity="fill_vertical"
android:gravity="center|fill" >

<ImageView
    android:id="@+id/square_topic_image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:contentDescription="@null"
    android:src="@drawable/default_topic_thumb" />

<LinearLayout
    android:id="@+id/square_topic_item_fl"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/square_topic_image"
    android:layout_centerHorizontal="true"
    android:orientation="vertical"
    android:paddingLeft="@dimen/square_topic_item_padding"
    android:paddingRight="@dimen/square_topic_item_padding" >

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

        <TextView
            android:id="@+id/square_topic_title_tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:alpha="50"
            android:gravity="left|center"
            android:textColor="@android:color/black"
            android:textSize="@dimen/square_topic_title_size" />

        <LinearLayout
            android:id="@+id/topic_praise_favourite_rl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:gravity="center|fill"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/topic_praise"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:drawableLeft="@drawable/ic_small_praise_d"
                android:padding="@dimen/square_topic_praise_favourite_space"
                android:textColor="@color/dark_gray"
                android:textSize="@dimen/square_topic_text_size" />

            <View
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:background="@color/dark_gray"
                android:padding="@dimen/square_topic_praise_favourite_space" />

            <TextView
                android:id="@+id/topic_favourite"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:drawableLeft="@drawable/ic_small_favourite_d"
                android:padding="@dimen/square_topic_praise_favourite_space"
                android:textColor="@color/dark_gray"
                android:textSize="@dimen/square_topic_text_size" />
        </LinearLayout>
    </RelativeLayout>

    <TextView
        android:id="@+id/square_topic_introduction_tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="0dp"
        android:gravity="left|center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/square_topic_text_size" />
</LinearLayout>


3个回答

imageview设置android:scaleType="fitXY"试试

s2c2010
s2c2010 仍然感谢你热心帮助!
大约 5 年之前 回复
s2c2010
s2c2010 图片会变形呢,不是需要的效果
大约 5 年之前 回复

2、
LinearLayout在设置一下android:layout_alignParentBottom="true",同时在用layout_marginBottom设置下边距

danielinbiti
danielinbiti 回复s2c2010: 那你只能缩减最外层的高度了。我估计在imageview外面你应该还有一个RelativeLayout,把画圆角矩形的那一层高度缩减
大约 5 年之前 回复
s2c2010
s2c2010 这样可以让文字内容显示最下端,但是与上面的图片间距太大,即使把layout_marginTop设置为0,仍是间距大哦。
大约 5 年之前 回复
  首先 ImageView 这个控件可以用个RelativeLayout包起来,在ativeLayout中设置 layout_weight="" 和android:layout_margin=""就可以了
        其中的图片宽高就算填充窗体也没问题。例如
        <RelativeLayout 
   android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1000"
android:layout_margin="20dp"
>
<ImageView 
     android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher"
android:scaleType="fitXY"
    />


至于TextView距底部距离过大,可以用layout_alignParentBottom="true"是在界面底部,再用marginBottom="10dp"设置距底部的距离

s2c2010
s2c2010 设置bottom可以让其处于下端,但和图片间距大噢~RelativeLayout中是没有layout_weight属性的呢~
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问