滚动视图中的图像无法正确显示
Image in scrollview doesn't display properly
我在不同设备上很好地显示图像时遇到问题。
S3 Device 的示例,它们显示了我想要的方式:
不过是S6 Device,图片显示太小,尤其是人像。
任何人都知道如何解决这个问题,因为我尝试使用 weight 、 match parent 等并没有真正起作用。
p.s。当我将 imageview 放在 scrollview 之上时,有时会非常完美。
下面是我现在的XML
<LinearLayout 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:orientation="vertical"
>
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ivEventInfoPoster"
android:src="@drawable/carfreeday"
android:scaleType="center"
android:contentDescription="@string/common_img_desc"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoTitle"
android:paddingTop="5dp"
android:text="Title"
android:textSize="24sp"
android:textStyle="bold"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoDesc"
android:text="Desc"
android:layout_marginTop="3dp"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoDate"
android:text="Date"
android:textSize="16sp"
android:layout_marginBottom="10dp"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
您是否尝试过更新 ImageView 的 scaleType?
除了 scaleType,您还可以设置 ImageView 的 adjustViewBounds 属性
用你的 ImageView
试试这个
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ivEventInfoPoster"
android:src="@drawable/carfreeday"
android:scaleType="fitStart"
android:adjustViewBounds="true"
android:contentDescription="@string/common_img_desc"
/>
我在不同设备上很好地显示图像时遇到问题。
S3 Device 的示例,它们显示了我想要的方式:
不过是S6 Device,图片显示太小,尤其是人像。
任何人都知道如何解决这个问题,因为我尝试使用 weight 、 match parent 等并没有真正起作用。 p.s。当我将 imageview 放在 scrollview 之上时,有时会非常完美。
下面是我现在的XML
<LinearLayout 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:orientation="vertical"
>
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ivEventInfoPoster"
android:src="@drawable/carfreeday"
android:scaleType="center"
android:contentDescription="@string/common_img_desc"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoTitle"
android:paddingTop="5dp"
android:text="Title"
android:textSize="24sp"
android:textStyle="bold"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoDesc"
android:text="Desc"
android:layout_marginTop="3dp"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvEventInfoDate"
android:text="Date"
android:textSize="16sp"
android:layout_marginBottom="10dp"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
您是否尝试过更新 ImageView 的 scaleType?
除了 scaleType,您还可以设置 ImageView 的 adjustViewBounds 属性
用你的 ImageView
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ivEventInfoPoster"
android:src="@drawable/carfreeday"
android:scaleType="fitStart"
android:adjustViewBounds="true"
android:contentDescription="@string/common_img_desc"
/>