15

我尝试使用PercentRelativeLayout.

所以我把这一行放在我的 build.gradle 文件中:compile 'com.android.support:design:23.0.1'

我使用这种布局:

<android.support.percent.PercentRelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:layout_width="match_parent"
        app:layout_aspectRatio="178%"
        android:scaleType="centerCrop"/>

</android.support.percent.PercentRelativeLayout>

问题:

  • Android Studio 警告我:'layout_height' should be defined对于ImageView.
  • 当我运行我的项目时,我得到了:Error:(15) No resource identifier found for attribute 'layout_aspectRatio'

那么怎么了?

4

4 回答 4

14

有了正确的依赖,你仍然有警告

'layout_height' 应该被定义

我使用 android:layout_height="0dp" 或 android:layout_width="0dp" 来避免它。

           <View
            android:layout_height="0dp"
            android:layout_width="0dp"
            app:layout_aspectRatio="75%"
            app:layout_widthPercent="100%"
             />

您甚至可以使用 android:layout_height="wrap_content" 以防内容大于 layout_aspectRatio

于 2015-11-12T22:05:33.753 回答
13

看来您在尝试包含Percent Support Library时使用了错误的依赖项。

正确的(和最新版本)是:

com.android.support:percent:23.1.0

换句话说,声明的依赖项在你的 gradle 文件中应该是这样的:

compile 'com.android.support:percent:23.1.0'
于 2015-10-29T13:38:43.387 回答
3

这里有一个 g+ 帖子:https: //plus.google.com/+AndroidDevelopers/posts/ZQS29a5yroK,它解释了如何在一定程度上使用它。

在评论中还有关于 layout_width/height 警告的讨论。Lint 过滤器将在未来的 Android Studio 版本中添加,但在此之前您可以添加一个<!-- suppress AndroidDomInspection -->来抑制警告,或者直接忽略它。

于 2016-03-16T17:41:00.473 回答
3

现在 PercentFrameLayout 和 PercentRelativeLayout 在 26.0.0 中都被弃用了,你可以开始使用ConstraintLayout了。

这篇博客文章解释了如何使用 ConstraintLayout 为 ImageView 实现 16:9 的纵横比,但它可以应用于任何视图。

于 2017-08-30T16:12:36.183 回答