SlideShare a Scribd company logo
1 of 105
Download to read offline
ハッシュタグ

デザイナーが             ##aaaaddeessiiggnnss

コードから読み解く、
AAnnddrrooiiddアプリの
デザインの幅を広げるコツと
TTiippss
                 第44回:レイアウト編
                            @@GGMMOO  YYoouurrss
                            22001122..1100..2255
ハッシュタグ

                   ##aaaaddeessiiggnnss
           デザイン   開発
70

60

50

40

30

20

10

 0
     Web           アプリ
ハッシュタグ

                                       ##aaaaddeessiiggnnss




aassaammiieeeeee77   ttoommmmmmmmyy   aaddaammrroocckkeerr
ハッシュタグ

            ##aaaaddeessiiggnnss


  がんばって作ったデザインが、
実装後に残念な結果にならないために
秋葉ちひろ
•・ @@ttoommmmmmmmyy
•・ デザイナー/アートディレクター
•・ WWeebb系・アプリ系
•・ BBaaiidduuでSSiimmeejjiiの開発のフロント
  エンドの一部
http://y-anz-m.blogspot.jp/2012/10/androidseekbar.html
今日のアジェンダ


レイアウト編
11.. よく使うレイアウト
22.. 単位と余白
33.. PPSSやFFWWでデザイン案を作るとき
     の33箇条
デザイナー向�け
レイアウト入�門
レイアウト編

11..  よく使うレイアウト
wwrraapp__ccoonntteenntt
                         インライン要素っぽい


ffiillll__ppaarreenntt//mmaattcchh__ppaarreenntt

                          ブロック要素っぽい
4488ddpp
android:layout_width="fill_parent"

android:layout_height="wrap_content"
TTeexxttVViieeww




IImmaaggeeVViieeww




TTeexxttVViieeww
<TextView   />
<TextView   />   TTeexxttVViieeww

<TextView   />
<TextView   />
                 IImmaaggeeVViieeww
<ImageView />
<ImageView />

<TextView />     TTeexxttVViieeww
11..  よく使うレイアウト

LLiinneeaarrLLaayyoouutt
<TextView   />
<TextView   />   TTeexxttVViieeww

<TextView   />
<TextView   />
                 IImmaaggeeVViieeww
<ImageView />
<ImageView />

<TextView />     TTeexxttVViieeww
<LinearLayout>
  <TextView   />
  <TextView   />   TTeexxttVViieeww

  <TextView   />
  <TextView   />
                   IImmaaggeeVViieeww
  <ImageView />
  <ImageView />

  <TextView />     TTeexxttVViieeww

</LinearLayout>
<LinearLayout>     たてにならべー!

  <TextView   />
                       TTeexxttVViieeww
  <TextView   />
                       TTeexxttVViieeww
  <TextView   />
  <TextView   />       TTeexxttVViieeww

                       TTeexxttVViieeww
  <ImageView />        IImmaaggeeVViieeww
  <ImageView />        IImmaaggeeVViieeww

                       TTeexxttVViieeww
  <TextView />
</LinearLayout>
<LinearLayout>     よこにならべー!

  <TextView   />
                       TTeexxttVViieeww
  <TextView   />
                       TTeexxttVViieeww
  <TextView   />
  <TextView   />       TTeexxttVViieeww

                       TTeexxttVViieeww
  <ImageView />        IImmaaggeeVViieeww
  <ImageView />        IImmaaggeeVViieeww

                       TTeexxttVViieeww
  <TextView />
</LinearLayout>
<LinearLayout>                             よこにならべー!

      <TextView                />
      <TextView                />
      <TextView                />
      <TextView                />
TTeexxttVViieeww TTeexxttVViieeww TTeexxttVViieeww TTeexxttVViieeww IImmaaggeeVViieeww
      <ImageView />                                         (入�り切らない)
      <ImageView />

      <TextView />
</LinearLayout>
name   id          time

img


                  text
よこにならべー!


      name   id          time

img


                  text
よこにならべー!          たてにならべー!

      name   id              time

img


                   text
よこにならべー!          たてにならべー!

      name   id              time

img


                    text




                  よこにならべー!
<LinearLayout>
</LinearLayout>
<LinearLayout>

   <ImageView />

   <LinearLayout>
   </LinearLayout>

</LinearLayout>
<LinearLayout>

   <ImageView />

   <LinearLayout>




   </LinearLayout>
</LinearLayout>
<LinearLayout>

   <ImageView />

   <LinearLayout>
       <LinearLayout>




       </LinearLayout>

        <TextView />

   </LinearLayout>
</LinearLayout>
<LinearLayout>

   <ImageView />

   <LinearLayout>
       <LinearLayout>

           <TextView />
           <TextView />
           <TextView />

       </LinearLayout>

        <TextView />

   </LinearLayout>
</LinearLayout>
!   LLiinneeaarrLLaayyoouuttの
    難点

 構造が複雑で、階層が深い
       ↓
数が多いと、重い原因となる
よこにならべー!



name     id       time
よこにならべー!



name      id                    time


android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
たてにならべー!
                    actionbar




                     toolbar

android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="0dp"
よこにならべー!



    cancel                OK

       11                  11
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
よこにならべー!



cancel                   OK

  11     layout_weight   22
LLiinneeaarrLLaayyoouuttの
     得意なこと

•・ 等分割や、割合を指定した分割が得意
•・ 使わないスペースを最大限に伸ばすこ
 とが得意
11..  よく使うレイアウト

RReellaattiivveeLLaayyoouutt
name   id          time

img


                  text
ぼく親だよー


      name   id          time

img


                  text
ぼく親だよー       ぼく親の右どなりAAのだよー


      name   id               time

img


                   text
ぼく親だよー       ぼく親の右どなりAAのだよー

                  ぼくAAの右どなりのBBだよー
      name   id                     time

img


                      text
ぼく親だよー        ぼく親の右どなりAAのだよー

                   ぼくAAの右どなりのBBだよー
       name   id                     time

 img


                       text




ぼくAAの下でAAと左端が同じなCCだよー
ぼく親だよー        ぼく親の右どなりAAのだよー

                   ぼくAAの右どなりのBBだよー
       name   id                     time

 img


                       text




ぼくAAの下でAAと左端が同じなCCだよー

              ぼくCCの上でCCと右端が同じなDDだよー
ぼく親だよー      android:id="@+id/Oya"

ぼく親の右どなりAAのだよー
     android:layout_toRightOf="@id/
     Oya"
ぼくAAの右どなりのBBだよー
     android:layout_toRightOf="@id/A"
ぼくAAの下でAAと左端が同じなCCだよー
     android:layout_below="@id/A"
     android:layout_alignLeft="@id/A"

ぼくCCの上でCCと右端が同じなDDだよー
     android:layout_above="@id/C"
     android:layout_alignRight="@id/C"
RReellaattiivveeLLaayyoouutt


              name      id            time

img


                               text
<RelativeLayout>
                    RReellaattiivveeLLaayyoouutt
  <ImageView />
                                  name      id
  <TextView   />    img

  <TextView   />
  <TextView   />
  <TextView   />

</RelativeLayout>
<LinearLayout>

   <ImageView />

   <LinearLayout>
        <LinearLayout>

            <TextView />
            <TextView />
            <TextView />

        </LinearLayout>

      <TextView />

   </LinearLayout>
</LinearLayout>
RReellaattiivveeLLaayyoouuttの
         得意なこと

•・ LLiinneeaarrLLaayyoouuttだと階層が深くなって
 しまうところを、軽々と11階層で表現
 できる!
11..  よく使うレイアウト

FFrraammeeLLaayyoouutt
 重ねるときに使おう
TTeexxttVViieeww

           sshhaappee


IImmaaggeeVViieeww



                        android:layout_width=
                                  "fill_parent"
                        android:layout_height=
                                  "fill_parent"
ssttaarrttCCoolloorr   ##88000000


 eennddCCoolloorr      ##00000000
<ScrollView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"   >
</ScrollView>
<ScrollView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"   >


   要素はひとつだけ
</ScrollView>
<HorizontalScrollView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"   >
</HorizontalScrollView>
レイアウト編

22..  単位と余白
AAnnddrrooiiddアプリの
               レイアウトで使う単位


                  ddpp                                                       sspp
DDeennssiittyy--iinnddeeppeennddeenntt  PPiixxeellss       SSccaallee--iinnddeeppeennddeenntt  PPiixxeellss




               http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
22..  単位と余白

ddppについて
116600ddppii   11   224400ddppii   11..55




 332200ppxx         448800ppxx


448800ppxx
                    880000ppxx
116600ddppii   11   224400ddppii   11..55




 332200ppxx         448800ppxx
 332200ddpp         332200ddpp
448800ppxx
                    880000ppxx
116600ddppii 224400ddppii 332200ddppii
  mmddppii     hhddppii     xxhhddppii

    11          11..55         22


  11ddpp       11ddpp        11ddpp
  11ppxx      11..55ppxx     22ppxx
224400ddppii   332200ddppii
  hhddppii      xxhhddppii

  11..55           22


  11ddpp         11ddpp
 11..55ppxx      22ppxx
22..  単位と余白

ssppについて
22

     11..77
     22..00
     22..33
     22..66


         http://y-anz-m.blogspot.jp/2012/02/
         androidtextview-settextsize-sp.html
116600ddppii 224400ddppii 332200ddppii
  mmddppii     hhddppii     xxhhddppii

    11          11..55         22


  11sspp       11sspp        11sspp
  11ppxx      11..55ppxx     22ppxx
224400ddppii   332200ddppii
  hhddppii      xxhhddppii

  11..55           22


  11sspp         11sspp
 11..55ppxx      22ppxx
2222sspp
1144sspp




1188sspp
重要なのは…�

   ddpp//ssppを意識すること

                  ddpp                                                       sspp
DDeennssiittyy--iinnddeeppeennddeenntt  PPiixxeellss       SSccaallee--iinnddeeppeennddeenntt  PPiixxeellss




               http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/design/style/typography.html
22..  単位と余白

実際にどう作るか
  考えてみる
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/design/style/metrics-grids.html
332200ddpp       336600ddpp


    553333ddpp
                      664400ddpp

     hhddppii             xxhhddppii
11ddpp   11..55ppxx    11ddpp      22ppxx
http://developer.android.com/design/downloads/index.html




                                                           336600ppxx
xxhhddppii   772200ppxx   336600ddpp   4488ddpp

                                       4488ddpp
                                       9966ppxx
xxhhddppii

               1122ddpp 2244ppxx


                                      88ddpp 1166ppxx
1166ddpp
 3322ppxx      1122ddpp

                           1122ddpp
xxhhddppii
             2244ppxx
             1122sspp

             1188sspp
             3322ppxx
             1144sspp
             2288ppxx
<RelativeLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"

    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"

    android:paddingTop="12dp"

    android:paddingBottom="12dp">
      <ImageView
	       android:layout_width="48dp"
	       android:layout_height="48dp"

	       android:layout_marginRight="   12dp"
	       android:src="@drawable/photo"
	       android:id="@+id/photoarea" />
      <TextView
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"

	       android:textSize="   18sp"
	       android:textColor="#fff"
	       android:layout_toRightOf="@id/photoarea"
	      android:text="Adamrocker"
	       android:id="@+id/titlearea" />
      <TextView
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"
PPhhoottoosshhoopp   GGaallaaxxyy  NNeexxuuss  で実装
336600ddpp                  332200ddpp

GGaallaaxxyy  NNeexxuuss  で実装   HHTTCC  DDeessiirree  で実装
レイアウト編:まとめ

PPSSやFFWWでデザインを作る
       ときの33箇条
1.
サイズは(ほぼ)22種類!
ddppやssppを意識する
伸縮できるところを意識する
332200ddpp       336600ddpp


    553333ddpp
                      664400ddpp

     hhddppii             xxhhddppii
11ddpp   11..55ppxx    11ddpp      22ppxx
2.
xxhhddppiiの余白は44の倍数の
ddppだとベスト!
hhddppiiになっても整数になる
224400ddppii   332200ddppii
  hhddppii      xxhhddppii

  11..55           22
xxddppii       xxhhddppii
11..55 : 22   =   の余白        :   の余白
xxddppii       xxhhddppii
11..55 : 22        =          の余白        :   の余白



                                         11..5533
  xxddppii       xxhhddppii
  の余白        =   の余白          ×
                 44の倍数
                                          22 44
3.
作ったあとは、実機で確認
(要ものさし)
何mmmmになるのかを実際にチェック
AAnnddrrooiidd  DDeessiiggnn  PPrreevviieeww




                       http://code.google.com/p/android-ui-utils/
デザイナーにも広めたい
と思ってはじめた勉強会
ありがとうございました!


GGoooodd  LLuucckk!!
•・ @@ttoommmmmmmmyy
•・ ffaacceebbooookk  ::  秋葉ちひろ
•・ 次回は1111//88(木)総集編
  @@GGooooggllee

  hhttttpp::////ggoooo..ggll//iiLLBBppoo

More Related Content

Similar to 【第4回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips

CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
AdvancedTechNight
 
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
Chihiro Tomita
 
Androidレイアウトのスタンダードアプローチ
AndroidレイアウトのスタンダードアプローチAndroidレイアウトのスタンダードアプローチ
Androidレイアウトのスタンダードアプローチ
Takao Sumitomo
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
 
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
Fumio SAGAWA
 

Similar to 【第4回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips (20)

XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
 
Twenty Eleven で レスポンシブサイトを つくろう、そうしよう
Twenty Eleven で レスポンシブサイトを つくろう、そうしようTwenty Eleven で レスポンシブサイトを つくろう、そうしよう
Twenty Eleven で レスポンシブサイトを つくろう、そうしよう
 
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
 
Rails基礎講座 part.2
Rails基礎講座 part.2Rails基礎講座 part.2
Rails基礎講座 part.2
 
ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターン
 
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
 
Androidレイアウトのスタンダードアプローチ
AndroidレイアウトのスタンダードアプローチAndroidレイアウトのスタンダードアプローチ
Androidレイアウトのスタンダードアプローチ
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
アンドロイダー的にHTML5でどこまでできそうか
アンドロイダー的にHTML5でどこまでできそうかアンドロイダー的にHTML5でどこまでできそうか
アンドロイダー的にHTML5でどこまでできそうか
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき
 
WordPress プラグイン Infinite Scroll を試してみた
WordPress プラグイン Infinite Scroll を試してみたWordPress プラグイン Infinite Scroll を試してみた
WordPress プラグイン Infinite Scroll を試してみた
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
グレープシティ製品からみるSPA開発のトレンドと動向
グレープシティ製品からみるSPA開発のトレンドと動向グレープシティ製品からみるSPA開発のトレンドと動向
グレープシティ製品からみるSPA開発のトレンドと動向
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
 
マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向
 
Dev for Citizen Manual
Dev for Citizen ManualDev for Citizen Manual
Dev for Citizen Manual
 
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
 

【第4回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips