web-dev-qa-db-ja.com

Androidレイアウトにパーセントを使用するには?

パーセント Android要素を表示するための値?

<TextView
        Android:id="@+id/"
        Android:layout_width="75%"
        Android:layout_height="50%"/>
35
masoud p

2018年更新:

PercentRelativeLayoutおよびPercentFrameLayoutは非推奨です。 ConstraintLayout の使用を検討してください

古い回答:

これまでのところAndroidサポートライブラリでは、これを使用する場所が制限されています。

  1. RelativeLayout

    _Android.support.percent.PercentRelativeLayout
    _
  2. FrameLayout

    _Android.support.percent.PercentFrameLayout
    _

それを使用する方法?

さて、まず、Androidアプリにbuild.grade(Module: app)の依存関係を含めるようにしてください。

_dependencies {
    compile 'com.Android.support:percent:23.3.0'
}
_

次に、この例のXMLレイアウト(.MainActivity)に移動します

_<Android.support.percent.PercentRelativeLayout

  xmlns:Android="http://schemas.Android.com/apk/res/Android"
  xmlns:app="http://schemas.Android.com/apk/res-auto"
  xmlns:tools="http://schemas.Android.com/tools"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:paddingBottom="@dimen/activity_vertical_margin"
  Android:paddingLeft="@dimen/activity_horizontal_margin"
  Android:paddingRight="@dimen/activity_horizontal_margin"
  Android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity">


  <Button
    Android:id="@+id/button"
    Android:text="Button"
    Android:layout_height="wrap_content"
    Android:layout_alignParentTop="true"
    app:layout_widthPercent="30%"/>

  <Button    
    Android:id="@+id/button2"
    Android:text="Button 2"
    Android:layout_height="wrap_content"
    Android:layout_toRightOf="@id/button"
    app:layout_widthPercent="60%"/>

  <Button
    Android:id="@+id/button3"
    Android:text="Button 3"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/button"
    Android:layout_alignParentStart="true"
    Android:layout_alignParentLeft="true"
    app:layout_widthPercent="90%"/>

</Android.support.percent.PercentRelativeLayout>
_

詳細については、 こちら を確認してください。

48
Aron

サポートライブラリは、パーセントレイアウトを追加しました。

このようにすることができます

 <Android.support.percent.PercentFrameLayout
     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="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </Android.support.percent.PercentFrameLayout>

https://developer.Android.com/reference/Android/support/percent/PercentFrameLayout.html

13
Chris Thoma

PercentRelativeLayout を使用できます。これは Design Support Library への最近の文書化されていない追加であり、相互に関連する要素だけでなく、利用可能な合計パーセンテージも指定できます。スペース。

構造は

<Android.support.percent.PercentRelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    >
    <ImageView
        Android:id="@+id/imageview"
        Android:layout_gravity="center"
        app:layout_widthPercent="50%"
        app:layout_heightPercent="50%"
        Android:src="@mipmap/ic_launcher"
        Android:background="#cecece"/>
    <TextView
        Android:id="@+id/textview1"
        Android:layout_below="@id/imageview"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        app:layout_marginStartPercent="25%"
        app:layout_marginEndPercent="25%"
        Android:text="PercentRelativeLayout example"
        Android:background="#bebebe"/>


</Android.support.percent.PercentRelativeLayout>

パーセントパッケージは、アプリでのパーセントベースのディメンションの追加と管理をサポートするAPIを提供します。

使用するには、このライブラリをyour Gradle dependencyリストに追加する必要があります。

dependencies {
    compile 'com.Android.support:percent:22.2.0'
    // or compile 'com.Android.support:percent:23.1.0'
}

デモ目的で、Git Android-percent-support-lib-sample にアクセスできます。

11
IntelliJ Amiya

PercentFrameLayoutPercentRelativeLayoutの両方が26.0.0で廃止されたため、ConstraintLayoutを使用して、TextViewをパーセント値でサイズ設定する必要があります。

ConstraintLayoutは、AndroidプラットフォームのレスポンシブUIを構築するための非常に強力なツールです。詳細については、こちらを参照してください ConstraintLayoutを使用したレスポンシブUIの構築

ConstraintLayoutを使用してTextView(w = 75%、h = 50%)のサイズを設定する方法の例を次に示します。

<Android.support.constraint.ConstraintLayout
    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="match_parent">

    <Android.support.constraint.Guideline
        Android:id="@+id/ver_guideline"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:orientation="vertical"
        app:layout_constraintGuide_percent="0.75"/>

    <Android.support.constraint.Guideline
        Android:id="@+id/hor_guideline"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5"/>

    <TextView
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:layout_marginBottom="0dp"
        Android:layout_marginEnd="0dp"
        Android:layout_marginStart="0dp"
        Android:layout_marginTop="0dp"
        app:layout_constraintBottom_toTopOf="@+id/hor_guideline"
        app:layout_constraintEnd_toStartOf="@+id/ver_guideline"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</Android.support.constraint.ConstraintLayout>

constraint-layout依存関係をモジュールbuild.gradleファイルに追加することを忘れないでください

dependencies {
    ...
    implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
    ...
}

または、次に示すように、レイアウトエディターでレイアウトを直接編集します。

Layout Editor

その結果、TextView幅は親の幅の75%で、高さは親の高さの50%です:

Image-1

Image-2

9
Eugene Brusov

GoogleにはAndroid.support.percentという新しいAPIがあります

PercentRelativeLayout

 <Android.support.percent.PercentFrameLayout
         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="match_parent">
     <TextView
         Android:id="@+id/myTextView"
         app:layout_widthPercent="75%"
         app:layout_heightPercent="50%"/>
 </Android.support.percent.PercentFrameLayout>
5
N J

PercentRelativeLayoutを使用できます。これはRelativeLayoutのサブクラスであり、パーセントベースの寸法とマージンをサポートします。

使用するには、このライブラリをGradle dependencyに追加する必要があります。

dependencies {
    compile 'com.Android.support:percent:23.1.0'
}

サンプル構造は

<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="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
</Android.support.percent.PercentRelativeLayout>
3
Ravi Rupareliya