SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Android Studioの新バージョン2.3をCheck It Out!

Androidアプリの新レイアウト「ConstraintLayout」をCheck It Out!

Android Studioの新バージョン2.3をCheck It Out! 後編

  • このエントリーをはてなブックマークに追加

 2017年3月、Android Studioの新バージョン2.3がリリースされました。注目すべき点は、なんといっても2.2から導入されたConstraintLayoutが安定したことです。他にも、画像ファイルのWebP形式への変換や、Instant Runの機能向上など、注目に値する新機能が追加されました。この連載では、前後編の2回にわたってAndroid Studio 2.3の新機能を紹介します。後編である今回は、最も注目すべき点であるConstraintLayoutを紹介します。

  • このエントリーをはてなブックマークに追加

対象読者

  • Androidアプリ開発者

ConstraintLayoutとは

 ConstraintLayoutの具体的な使い方の解説に入る前に、まずConstraintLayoutについて解説しておきましょう。

ConstraintLayoutがデフォルトレイアウト

 ConstraintLayoutはAndroid Studio2.2で追加された新しいレイアウトです。Android Studioで新しいプロジェクトを作成する際に、レイアウトファイルにデフォルトで書かれていたレイアウトは、2.2まではRelativeLayoutでした。これが、2.3からはこのConstraintLayoutがデフォルトに変更されています。それに伴い、Android Studioのレイアウトエディタで、このConstraintLayoutを使った画面作成が非常にやりやすくなっています。

ConstraintLayoutの特徴

 ConstraintLayoutは、RelativeLayoutと同じく、画面部品を相対的に配置するレイアウトです。タグの記述はレイアウト部品を入れ子にせず、並列に記述することが可能です。一方、部品同士の配置の指定方法がRelativeLayoutより簡単になりました。そのポイントはレイアウト名にあるConstraint、つまり「制約」にあります。RelativeLayoutでは、ある部品を基点としてそこからの相対配置を行いました。ConstraintLayoutではこの基点も存在せず、全ての部品を相対指定します。

 例えば、下図を見てください。

図1 ConstraintLayoutの考え方
図1 ConstraintLayoutの考え方

 部品Dに対して水平方向(横方向)の左側に部品Cが、垂直方向(縦方向)の上側に部品Bが存在しています。このように、ある部品の縦方向と横方向にどんな部品が存在するかの指定を「制約」と呼んでいます。これらの制約は少なくとも縦横それぞれにひとつずつ指定すればよく、上下左右全てを指定する必要はありません。また、指定先として親部品も使えます。

 例えば、部品Aは左方向と上方向に親部品を指定しています。ここで注目すべきは部品Aは左方向と上方向に親部品を指定することで、すでに縦横それぞれに一つずつ制約を指定しているため、これ以上の設定は不要なのです。そのため、「右側に画面部品Bがある」や「下側に画面部品Cがある」といった設定は不要です。設定しても問題はありませんが、部品Bで「左に部品Aがある」と設定している場合には不要です。

 この考え方によって、非常に簡単で柔軟なレイアウトを実現することができようになりました。今回はサンプルの作成を通じて、この「簡単さ」「柔軟さ」を体感していただきましょう。

サンプルプロジェクト作成

 では早速、今回使用するサンプルプロジェクトを作成しておきましょう。

ライブラリの追加

 実際のプロジェクト作成に入る前に、ライブラリを追加しておきましょう。ConstraintLayoutは通常のSDKとは別ライブラリのため、あらかじめインストールしておく必要があります。[SDK Manager]を表示し、[SDK Tools]タブを表示させてください。右下の[Show Package Details]チェックボックスにチェックを入れ、詳細を表示させます。図2のように[Support Repository]を展開し、「ConstraintLayout for Android」と「Solver for ConstraintLayout」の最新版がインストールされているかどうか確認してください。

図2 ConstraintLayoutライブラリの確認
図2 ConstraintLayoutライブラリの確認

 インストールされていない場合は、チェックを入れてインストールしてください。

プロジェクト情報

 ではプロジェクトを作成しましょう。以下がプロジェクト情報です。

  • Application name:ConstraintLayoutSample
  • Company Domain:android.wings.websarva.com
  • Package name:com.websarva.wings.android.newfeaturessample
  • Project location:C:\…任意のワークフォルダ…\NewFeaturesSample
  • Phone and Tablet Minimum SDK:API 15
  • Add an activity:Empty Activity
  • Activity Name:ConstraintLayoutActivity
  • Layout Name:activity_constraint_layout

strings.xmlの記述

 プロジェクトが作成できたら、strings.xmlを以下の内容に変更してください。

strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">ConstraintLayoutサンプル</string>
    <string name="tv_title">必要な情報を入力してください。</string>
    <string name="tv_name">名前</string>
    <string name="tv_mail">メールアドレス</string>
    <string name="tv_comment">質問内容</string>
</resources>

 この状態からactivity_constraint_layout.xmlファイルを改変していきますが、今回はソースコードの記述ではなく、レイアウトエディタのデザインモードを使い、GUI上で操作していきます。また、レイアウトファイルのみの改変のため、Javaソースコードは記述しません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
基本の配置

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Android Studioの新バージョン2.3をCheck It Out!連載記事一覧
この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook<個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10228 2017/06/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング