web-dev-qa-db-ja.com

PercentRelativeLayoutでlayout_aspectRatioを使用するにはどうすればよいですか?

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>
_

問題:

  • Android Studioは、ImageViewに対して_'layout_height' should be defined_で警告します。
  • プロジェクトを実行すると、次のようになります:Error:(15) No resource identifier found for attribute 'layout_aspectRatio'

では、何が問題なのですか?

14
Zxcv

PercentFrameLayoutとPercentRelativeLayoutの両方が26.0.0で非推奨になったので、 ConstraintLayout の使用を開始できます。

この ブログ記事 は、ConstraintLayoutを使用してImageViewのアスペクト比を16:9にする方法を説明していますが、どのビューにも適用できます。

2
Eugene Brusov

正しい依存関係であなたはまだ警告を持っていました

'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%"
             />

コンテンツがlayout_aspectRatioよりも大きくなる場合は、Android:layout_height = "wrap_content"を使用することもできます。

14
Victor

パーセントサポートライブラリ を含めようとして、間違った依存関係を使用しているようです。

正しいもの(および最新バージョン)は次のとおりです。

com.Android.support:percent:23.1.0

つまり、宣言された依存関係は、gradleファイルでは次のようになります。

compile 'com.Android.support:percent:23.1.0'
13
MH.

ここにg +の投稿があります: https://plus.google.com/+AndroidDevelopers/posts/ZQS29a5yroK これをある程度深く使用する方法を説明しています。

コメントには、layout_width/height警告についての説明もあります。 Lintフィルターは将来Android Studioバージョンで追加される予定ですが、それまでは<!-- suppress AndroidDomInspection -->を追加して警告を抑制するか、無視することができます。

3
jokigenki