I try to achieve a 16:9 aspect ratio on a view with the PercentRelativeLayout
.
So I have put this line in my build.gradle file: compile 'com.android.support:design:23.0.1'
I use this layout:
<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>
Problems:
'layout_height' should be defined
for the ImageView
.Error:(15) No resource identifier found for attribute 'layout_aspectRatio'
.So what's wrong ?
With the correct dependency you still had the warn
'layout_height' should be defined
I used android:layout_height="0dp" or android:layout_width="0dp" to avoid it.
<View
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_aspectRatio="75%"
app:layout_widthPercent="100%"
/>
you can even use android:layout_height="wrap_content" in case of the content will be bigger that the layout_aspectRatio
It appears you're using the wrong dependency in an attempt to include the Percent Support Library.
The correct one (and latest version) is:
com.android.support:percent:23.1.0
In other words, the declared dependency should look like this in your gradle file:
compile 'com.android.support:percent:23.1.0'
Now with both PercentFrameLayout and PercentRelativeLayout being deprecated in 26.0.0, you can start using ConstraintLayout.
This blog article explains how to achieve a 16:9 aspect ratio for ImageView using ConstraintLayout, but it can be applied to any view.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With