例如布局
<ImageView
android:id="@+id/overlayBackButton"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/action_close"
android:focusable="true"
android:padding="6dp"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="@id/overlayTopBackground"
app:layout_constraintStart_toStartOf="@id/overlayTopBackground"
app:layout_constraintTop_toTopOf="@id/overlayTopBackground"
app:srcCompat="@drawable/ic_back_24dp"
app:tint="?colorOnPrimary"
tools:ignore="MissingPrefix" />
<androidx.constraintlayout.widget.Group
android:id="@+id/overlayVideoControlsGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="overlayBottomBackground,overlayBackButton,overlayPlayPauseButton,overlaySeekBar"
tools:visibility="visible" />
<View
android:id="@+id/overlayBottomBackground"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/black_alpha"
app:layout_constraintBottom_toBottomOf="parent" />
<ImageView
android:id="@+id/overlayPlayPauseButton"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/action_play"
android:focusable="true"
android:padding="6dp"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="@id/overlayBottomBackground"
app:layout_constraintStart_toStartOf="@id/overlayBottomBackground"
app:layout_constraintTop_toTopOf="@id/overlayBottomBackground"
app:srcCompat="@drawable/ic_play_arrow"
app:tint="?colorOnPrimary"
tools:ignore="MissingPrefix" />
<SeekBar
android:id="@+id/overlaySeekBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:backgroundTint="?colorOnPrimary"
android:progressBackgroundTint="?colorOnPrimary"
android:thumbTint="?colorOnPrimary"
app:layout_constraintBottom_toBottomOf="@id/overlayBottomBackground"
app:layout_constraintEnd_toEndOf="@id/overlayBottomBackground"
app:layout_constraintStart_toEndOf="@id/overlayPlayPauseButton"
app:layout_constraintTop_toTopOf="@id/overlayBottomBackground" />
可以使用
views?.overlayVideoControlsGroup?.isVisible=true和false来控制四个控件的展示和消失
备注:
1.android:src:
android:src 是 Android 系统提供的原生属性,用于设置 ImageView 的图片资源。
通常情况下,android:src 仅支持 @drawable/ 下的资源或者 @mipmap/ 下的应用图标。
不支持矢量图(Vector Drawable)等一些较新的资源,因为在 API 21 以下的版本中不支持矢量图。
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
2.app:srcCompat:
app:srcCompat 是由 AppCompat 库提供的一个扩展属性,用于替代 android:src。
app:srcCompat 不仅支持 @drawable/ 和 @mipmap/ 下的资源,还支持矢量图等一些较新的资源。
在 AppCompat 库的支持下,可以在所有版本的 Android 中使用矢量图等资源。
<ImageView
android:id="@+id/imageViewCompat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_vector_image"/>
总体而言,如果你在项目中使用了 AppCompat 库,并且需要支持矢量图等一些较新的资源,建议使用 app:srcCompat。如果仅使用 @drawable/ 或 @mipmap/ 下的资源,使用 android:src 也是可以的。在实际开发中,app:srcCompat 更具有通用性,因为它适用于更广泛的资源类型,并且可以提供更好的兼容性。