java - 如何像此应用程序中那样保持 ImageView 的纵横比? [Android,ImageView,长宽比,ScrollView]

标签 java android xml kotlin imageview

我想要实现 ImageView 和按钮组的宽高比,如下图 1 所示。图2是我目前的 Activity 状态。我希望达到与图 1 中的应用程序相同的状态。

编辑1 - 图片一上的应用程序始终是 ImageView +按钮组,所有设备,所以这不是宽高比的问题,而是其他问题

ImageView 和按钮组包装在约束布局中,该布局位于 ScrollView 内部。

图片1 - 图2-

下面的代码是关于 ImageView 和按钮组的部分。

<ImageView
        android:id="@+id/poster_image"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@id/buttons_group"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/buttons_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/poster_image"
        app:layout_constraintBottom_toTopOf="@id/imdb_placeholder"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="parent">

    <Button
            android:id="@+id/trailer_button"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:background="@drawable/ic_play"
            android:foreground="?android:attr/selectableItemBackground"
            android:scaleType="centerCrop"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/watch_later_button"
            app:layout_constraintTop_toTopOf="@id/buttons_group"
            app:layout_constraintBottom_toBottomOf="@id/buttons_group"/>

    <Button
            android:id="@+id/watch_later_button"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:background="@drawable/ic_watch_later"
            android:foreground="?android:attr/selectableItemBackground"
            android:scaleType="centerCrop"
            app:layout_constraintTop_toTopOf="@id/buttons_group"
            app:layout_constraintBottom_toBottomOf="@id/buttons_group"
            app:layout_constraintStart_toEndOf="@+id/trailer_button"
            app:layout_constraintEnd_toStartOf="@+id/share_movie_button"/>
    <Button
            android:id="@+id/share_movie_button"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:background="@drawable/ic_share"
            android:foreground="?android:attr/selectableItemBackground"
            android:scaleType="centerCrop"
            app:layout_constraintTop_toTopOf="@id/buttons_group"
            app:layout_constraintBottom_toBottomOf="@id/buttons_group"
            app:layout_constraintStart_toEndOf="@+id/watch_later_button"
            app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

最佳答案

使用RecyclerView您可以提供多种 View 类型。

enum class ViewType {
    HEADER_CONTROLS,
    ADDITIONAL_CONTROLS,
    COMMENTS
}

class Adapter() {
    fun getViewType(position: Int): Int {
        when (position) {
            0 -> ViewType.HEADER_CONTROLS.ordinal
            // ETC
        }
    }
}

然后您可以将标题 View 创建为匹配父 View ,它将适当滚动。

关于java - 如何像此应用程序中那样保持 ImageView 的纵横比? [Android,ImageView,长宽比,ScrollView],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57511770/

相关文章:

android - 使用自定义后端检查和播放应用程序完整性

xml - 解析出节点和属性 XML::LibXML

Java:String.replace(regex, string) 从 XML 中删除内容

java - 类变成内部类时Maven编译失败(虽然Eclipse很好)?

java - 如何使用 Amazon SQS 和 SNS 发送多封电子邮件?

java - getView 未在自定义适配器中调用

android - Android ActionBar 中的操作项不可点击

xml - 带 HTTP 身份验证的 Wordpress XML 媒体导入

java - 带有祖先键的 PersistenceManager.getObjectById

java - Scala 打开写入标准输出或文件