是否可以调整卡片视图的左侧高度?

Is it possible to adjust left hand side height of cardview?

我有一个与屏幕顶部对齐的 CardView。在 CardView 内部,有一个 ImageView,我只想调整 CardView 右侧的高度,如下图所示。这可能吗?

  <androidx.cardview.widget.CardView
  android:layout_width="0dp"
  android:layout_height="0dp"
  app:layout_constraintWidth_percent="1"
  app:layout_constraintHeight_percent="0.4"
  app:layout_constraintEnd_toEndOf="parent"
  app:layout_constraintStart_toStartOf="parent"
  app:layout_constraintTop_toTopOf="parent"
  app:cardElevation="10dp"
  app:cardCornerRadius="0dp">
    <ImageView
       android:id="@+id/bngCover"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       app:srcCompat="@drawable/explore2"
       android:scaleType="centerCrop"/>
</androidx.cardview.widget.CardView>

CardView 没有 属性 只能改变边高。在这种情况下,您必须改为创建自定义梯形形状,如下所示:

撇开半径不谈,CardView 通常是矩形的;因此,这无法通过 CardView 轻松实现

最好的建议是创建您自己的资源文件。通过这种方式,您可以定义您希望视图的外观并仍然为其提供所需的属性(高程、半径等)。

要了解如何创建可绘制资源文件,请查看 this tutorial out. You can also read up on the Android documentation on ShapeDrawables here