我试图编码列表中项目的布局。我的想法是,我希望在项目的右侧显示图片,水平和垂直居中。我将我的图像嵌入容器中,在其中放置一些填充物以使图像不接触边界。我通过调用Java代码中的setImageBitmap()将图像膨胀到ImageView中。我的问题是图像并不总是按照我想要的方式显示,有时它们没有很好地居中,有时甚至触摸项目的边界(即使我设置了填充!)。你能告诉我,如果我做错了吗? 这是我的xml:
<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="wrap_content"
>
<RelativeLayout
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
>
<TextView
android:id="@+id/thing1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:text="blablablabla"
android:textSize="16sp" />
<TextView
android:id="@+id/thing2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/thing1"
android:layout_marginBottom="2dp"
android:text="7(2)"
android:textColor="@color/green"
android:textSize="14sp" />
<TextView
android:id="@+id/thing3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/thing2"
android:layout_marginBottom="3dp"
android:text="myText"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/photocontainer"
android:layout_width="100dp"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/content"
android:layout_alignParentRight="true"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<ImageView
android:id="@+id/photo"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
</RelativeLayout>
答案 0 :(得分:1)
在RelativeLayout
android:id="@+id/photocontainer"
中,将您的身高更改为android:layout_height="100dp"
。因为它是fill_parent,所以每行占用的面积将取决于图像的高度。同时在android:scaleType="fitXY"
中添加ImageView
。
希望这能解决您的问题。
答案 1 :(得分:1)
请尝试这种方式,希望这有助于您解决问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:id="@+id/thing1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:text="blablablabla"
android:textSize="16sp" />
<TextView
android:id="@+id/thing2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="7(2)"
android:textSize="14sp" />
<TextView
android:id="@+id/thing3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="myText"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:id="@+id/photo"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher"/>
</LinearLayout>