我尝试在PercentRelativeLayout
的视图上实现16:9的宽高比。
所以我把这行放在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>
问题:
'layout_height' should be defined
。{/ 1>} ImageView
Error:(15) No resource identifier found for attribute 'layout_aspectRatio'
。那有什么不对?
答案 0 :(得分:13)
在尝试包含Percent Support Library时,您似乎使用了错误的依赖项。
正确的(和最新版本)是:
com.android.support:percent:23.1.0
换句话说,声明的依赖项在gradle文件中应如下所示:
compile 'com.android.support:percent:23.1.0'
答案 1 :(得分:13)
使用正确的依赖关系,你仍然有警告
应该定义'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更大
答案 2 :(得分:3)
这里有一个g +帖子:https://plus.google.com/+AndroidDevelopers/posts/ZQS29a5yroK解释了如何在某种程度上使用它。
在评论中还讨论了layout_width / height警告。未来的Android Studio版本中会添加一个Lint过滤器,但在此之前,您可以添加<!-- suppress AndroidDomInspection -->
来禁止警告,或者忽略它。
答案 3 :(得分:2)
现在,在26.0.0中不推荐使用PercentFrameLayout和PercentRelativeLayout,您可以开始使用ConstraintLayout。
这个blog article解释了如何使用ConstraintLayout为ImageView实现16:9的宽高比,但它可以应用于任何视图。