为什么 Android ImageView 中的图像显示为中间的一个点?
Why is image in Android ImageView shown as a dot in the middle?
如标题所述,我的问题是为什么 ImageView 中的图像在中心显示为一个点。这是显示我所说的“中心点”的图像:1
此错误仅在 Lenovo 平板电脑 运行 Android 8.1.0 上暴露。在所有模拟器和其他设备上,一切都运行良好。
这是我设置图像的 xml 和 Java 代码的一部分。
<androidx.cardview.widget.CardView
android:id="@+id/pet_card_view"
android:layout_width="@dimen/card_view_width"
android:layout_height="@dimen/card_view_height"
android:layout_marginStart="@dimen/margin_left_create_marker"
android:layout_marginTop="16dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/corner_radius"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
app:cardCornerRadius="250dp">
<ImageView
android:id="@+id/pet_picture"
android:layout_width="@dimen/pet_picture_width"
android:layout_height="@dimen/pet_picture_height"
android:scaleType="centerCrop"
tools:ignore="ContentDescription"/>
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
markerViewModel.getChosenPicture().observe(getViewLifecycleOwner(), uri -> {
if (uri != null) {
binding.petPicture.setImageURI(uri);
petPicture = uri;
}
});
您的 app:cardCornerRadius
占满了所有 space。将其设置为 25dp 或更小,您应该会开始看到一些东西。
如标题所述,我的问题是为什么 ImageView 中的图像在中心显示为一个点。这是显示我所说的“中心点”的图像:1
此错误仅在 Lenovo 平板电脑 运行 Android 8.1.0 上暴露。在所有模拟器和其他设备上,一切都运行良好。 这是我设置图像的 xml 和 Java 代码的一部分。
<androidx.cardview.widget.CardView
android:id="@+id/pet_card_view"
android:layout_width="@dimen/card_view_width"
android:layout_height="@dimen/card_view_height"
android:layout_marginStart="@dimen/margin_left_create_marker"
android:layout_marginTop="16dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/corner_radius"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
app:cardCornerRadius="250dp">
<ImageView
android:id="@+id/pet_picture"
android:layout_width="@dimen/pet_picture_width"
android:layout_height="@dimen/pet_picture_height"
android:scaleType="centerCrop"
tools:ignore="ContentDescription"/>
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
markerViewModel.getChosenPicture().observe(getViewLifecycleOwner(), uri -> {
if (uri != null) {
binding.petPicture.setImageURI(uri);
petPicture = uri;
}
});
您的 app:cardCornerRadius
占满了所有 space。将其设置为 25dp 或更小,您应该会开始看到一些东西。