图片太大,无法查看所有视图

时间:2011-10-04 10:15:06

标签: android android-layout

我有一个PizzaOverview。

enter image description here

XML:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  >
    <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="" android:id="@+id/pizza_tv" android:gravity="center_horizontal" android:textSize="15pt"></TextView>
    <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/pizza_iv" android:src="@drawable/icon" android:layout_gravity="center_horizontal"></ImageView>
    <RatingBar android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/pizza_rb" android:layout_gravity="center_horizontal"></RatingBar>
    <TextView android:layout_height="wrap_content" android:text="" android:id="@+id/pizza_date" android:gravity="center|center_horizontal" android:layout_width="fill_parent"></TextView>

<RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent">
        <Button android:text="close" android:layout_height="wrap_content" android:id="@+id/pizza_bt" android:layout_alignParentBottom="true" android:layout_width="fill_parent"></Button>
    </RelativeLayout>
    </LinearLayout>

如果图片太大,则日期不可见。

enter image description here

4 个答案:

答案 0 :(得分:0)

向您的布局添加滚动视图或修复imageview的大小

将滚动视图添加到您的布局

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ScrollView
 android:layout_width="fill_parent"
android:layout_height="fill_parent"
 >
 <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="" android:id="@+id/pizza_tv" android:gravity="center_horizontal" android:textSize="15pt"></TextView>
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/pizza_iv" android:src="@drawable/icon" android:layout_gravity="center_horizontal"></ImageView>
<RatingBar android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/pizza_rb" android:layout_gravity="center_horizontal"></RatingBar>
<TextView android:layout_height="wrap_content" android:text="" android:id="@+id/pizza_date" android:gravity="center|center_horizontal" android:layout_width="fill_parent"></TextView>

<RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent">
    <Button android:text="close" android:layout_height="wrap_content" android:id="@+id/pizza_bt" android:layout_alignParentBottom="true" android:layout_width="fill_parent"></Button>
</RelativeLayout>
</LinearLayout>
</ScrollView>
 </LinearLayout>

答案 1 :(得分:0)

确保您为活动提供的图像具有正确的分辨率和大小。 另外,请确保您有单独的屏幕尺寸类别的布局。

阅读android文档的this部分,了解有关布局和管理不同屏幕尺寸的更多详细信息。它告诉你你需要的基础知识。

答案 2 :(得分:0)

您可以将图片放在评级栏中,并将其下方的文字放在RelativeLayout中。给marginBottom RelativeLayout等于Button的高度android:layout_alignParentBottom="true"。然后放置文字,给它一个ID并添加height。将图片的fill_parent设置为android:layout:below="id_of_text",然后添加属性{{1}}。

答案 3 :(得分:0)

您可以像其他答案状态一样使屏幕可滚动。但是,如果你的内容是动态的(并且根据设备可以说你的内容总是动态的),你应该确保ImageView正确设置它的边界。

在源代码中:

<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/pizza_iv" android:src="@drawable/icon" android:layout_gravity="center_horizontal"></ImageView>

你应该改为:

<ImageView android:layout_height="0dp" 
    android:weight="1"
    android:layout_width="match_parent" 
    android:id="@+id/pizza_iv" 
    android:src="@drawable/icon" 
    android:layout_gravity="center_horizontal"
    android:scaleType="centerInside"/>

weight的额外属性将使您的视图沿着边界LinearLayout中的方向集填充任何可用空间。这取决于沿该方向的其他视图的权重(因为其他视图在此情况下没有权重值,它将填充所有空间直到固定视图的边缘)。

scaleType="centerInside"的额外属性会使您的图像位于您建议的边界的中心(这是屏幕的宽度和垂直的所有可用空间),而不会增长到足以与边界容器重叠

使用ImageView时,请记住ImageView是图像的边界容器。它可以尽可能大或小,但只是告诉UI放置图像的位置的机制。 scaleType属性用于表示您希望图像放置在此边界计数器中的方式。在"wrap_content"上使用ImageView无效,可能会在设计后期遇到麻烦(特别是在考虑不同的设备时)。