SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Android
Fragment-Awesome
     Matthew Gaunt
Who is this guy?

• Master in Computer Science in Bristol
• Senior Android Dev @ Mubaloo
• Cross Platform Dev @ Future Platforms
What Fragmentation?
What’s coming up
• Design - I can haz pretty
 • Dips
 • Buckets?
 • What buckets?
 • The story of buckets
• Tips + Examples
Dips

Density Independent Pixels
Abstract the screen size (think rounded
corner rectangle)
Never assume dip > pixels
Buckets?




ldpi   mdpi   hdpi   xhdpi
What Buckets?
Screen density (ldpi, mdpi, hdpi, xhdpi)

Orientation (port, land)

Android Version (v4, v11)

Screen size (small, normal, large, xlarge)
Eeks lots of Images
How to use Buckets

• Images - [ldpi, mdpi, hdpi, xhdpi] [small, normal, large, xlarge]


• Layout -[land, port]


• Themes / Styles -          [v4, v11]


• Dimensions -       [small, normal, large, xlarge]
The History...
The History...


<port>
 land

  1.5
The History...

           ldpi
<port>     mdpi
 land      hdpi
  1.5       1.6
The History...
                   small
           ldpi   normal
<port>     mdpi    large
 land      hdpi   xlarge
  1.5       1.6    3.0 (ish)
The History...
                   small
           ldpi   normal        ldpi
                                mdpi
<port>     mdpi    large        hdpi
 land      hdpi   xlarge       xhdpi
  1.5       1.6    3.0 (ish)    4.0
Recap

• Lots of buckets
• Lots of resources to apply the buckets to
• How it relates to other platforms like iOS
Random.
Phones / Tablets?
                    ldpi   mdpi  hdpi xhdpi  total
Small              1.7%           2.4%       4.1%
Normal             0.7%    18.5% 66.3% 2.5% 88.0%
Large              0.2%     2.8%             3.0%
XLarge                      4.9%             4.9%

       ldpi
      mdpi                               mdpi
       hdpi                            ? hdpi ?
      xhdpi                           ? xhdpi ?

 Phones                            Tablets
  normal / small                    large / xlarge
Hitting Both?
drawable              For all buckets
drawable-ldpi
drawable-mdpi
                           Base
drawable-hdpi
drawable-xhdpi
drawable-large-?
                        Additional
drawable-xlarge-?
Tips to Reduce Work

            1
 Use values everywhere
   (dimens, ints, etc.)
Tips to Reduce Work
values
     dimens.xml
           <resources>
              <dimen name="default_text_size">20sp</dimen>
              <dimen name="default_large_text_size">30sp</dimen>
              <dimen name="splash_vertical_spacing">20dp</dimen>
              <dimen name="gauntface_tag_bottom_spacing">20dp</dimen>
              <dimen name="gauntface_tag_padding">5dp</dimen>
              <dimen name="gauntface_tag_radius">10dp</dimen>
              <dimen name="splash_gauntface_progress_bar">30dp</dimen>
              <dimen name="generic_dialog_padding">15dp</dimen>
              <dimen name="generic_dialog_bg_radius">4dp</dimen>
              <dimen name="generic_dialog_title_spacer_height">4dp</dimen>
              <dimen name="generic_dialog_title_spacer_vertical_spacing">10dp</dimen>
              <dimen name="sync_info_padding">10dp</dimen>
              <dimen name="sync_info_title_text_size">35sp</dimen>
              <dimen name="sync_info_msg_text_size">20sp</dimen>
              <dimen name="sync_info_bg_radius">10dp</dimen>
              <dimen name="sync_info_prof_pic_radius">8dp</dimen>
              <dimen name="sync_info_prof_pic_size">128dp</dimen>
          </resources>

values-land
     dimens.xml
           <resources>
              <dimen name="default_text_size">15sp</dimen>
              <dimen name="default_large_text_size">25sp</dimen>
              <dimen name="splash_vertical_spacing">10dp</dimen>
          </resources>
Tips to Reduce Work
   values      values-land
Tips to Reduce Work

          2
 Learn the ways of the
     nine patch
Tips to Reduce Work
Tips to Reduce Work

          3
Use <Shape> drawables
Tips to Reduce Work
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="0"
        android:endColor="@color/dark_blue"
        android:gradientRadius="660"
        android:startColor="@color/splash_light_blue"
        android:type="radial" />
</shape>
Tips to Reduce Work
Tips to Reduce Work

                             4
 Use Themes & Styles
  www.gauntface.co.uk/blog/2011/01/18/android-ui-reference
Tips to Reduce Work
values
     themes.xml
          <resources>
               <style name="Theme.FacebookSync" parent="@style/Theme.FacebookSync.Support">
                  ...
              </style>
              <style name="Theme.FacebookSync.NoTitleBar">
                  ...
              </style>
              <style name="Theme.FacebookSync.Dialog" parent="@style/Theme.Dialog.Support">
                  ...
               </style>
          </resources>

values-v11
     themes-v11.xml
          <resources>
              <style name="Theme.FacebookSync.Support" parent="@android:style/Theme.Holo"></style>
              <style name="Theme.Dialog.Support" parent="@android:style/Theme.Holo.Dialog"></style>
          </resources>

values-v4
     themes-v4.xml
          <resources>
              <style name="Theme.FacebookSync.Support" parent="@android:style/Theme.NoTitleBar"></style>
              <style name="Theme.Dialog.Support" parent="@android:style/Theme.Dialog"></style>
          </resources>
Tips to Reduce Work
Tips to Reduce Work

           5
Give up control - be fluid
Tips to Reduce Work
     Note: Not the best example ;)
Tips to Reduce Work
You’re Results May Vary
Thanks :)
    @gauntface
matt@gauntface.co.uk

Más contenido relacionado

Similar a Android Fragment-Awesome

Elephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to HadoopElephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to Hadoop
Stuart Ainsworth
 
Breaking the oracle tie
Breaking the oracle tieBreaking the oracle tie
Breaking the oracle tie
agiamas
 
Distributed Data Analysis with Hadoop and R - Strangeloop 2011
Distributed Data Analysis with Hadoop and R - Strangeloop 2011Distributed Data Analysis with Hadoop and R - Strangeloop 2011
Distributed Data Analysis with Hadoop and R - Strangeloop 2011
Jonathan Seidman
 

Similar a Android Fragment-Awesome (20)

Androidfragment
AndroidfragmentAndroidfragment
Androidfragment
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids.
 
Android training day 3
Android training day 3Android training day 3
Android training day 3
 
Supporting multi screen in android
Supporting multi screen in androidSupporting multi screen in android
Supporting multi screen in android
 
Supporting multi screen in android cn
Supporting multi screen in android cnSupporting multi screen in android cn
Supporting multi screen in android cn
 
Android supporting multiple screen
Android supporting multiple screenAndroid supporting multiple screen
Android supporting multiple screen
 
Introduction to Big Data and Hadoop
Introduction to Big Data and HadoopIntroduction to Big Data and Hadoop
Introduction to Big Data and Hadoop
 
Android在多屏幕、多设备上的适配 | 布丁 任斐
Android在多屏幕、多设备上的适配 | 布丁 任斐Android在多屏幕、多设备上的适配 | 布丁 任斐
Android在多屏幕、多设备上的适配 | 布丁 任斐
 
TDC2012 Android - Deixando Sua Interface mais Bonita com Shapes
TDC2012 Android - Deixando Sua Interface mais Bonita com ShapesTDC2012 Android - Deixando Sua Interface mais Bonita com Shapes
TDC2012 Android - Deixando Sua Interface mais Bonita com Shapes
 
Fernando F. Gallego - Efficient Android Resources 101
Fernando F. Gallego - Efficient Android Resources 101Fernando F. Gallego - Efficient Android Resources 101
Fernando F. Gallego - Efficient Android Resources 101
 
Let's dig into the Omega Theme!
Let's dig into the Omega Theme!Let's dig into the Omega Theme!
Let's dig into the Omega Theme!
 
Does my DIV look big in this?
Does my DIV look big in this?Does my DIV look big in this?
Does my DIV look big in this?
 
Hadoop Interview Questions and Answers
Hadoop Interview Questions and AnswersHadoop Interview Questions and Answers
Hadoop Interview Questions and Answers
 
Big Data - An Overview
Big Data -  An OverviewBig Data -  An Overview
Big Data - An Overview
 
Elephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to HadoopElephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to Hadoop
 
Bootstrap 3 training
Bootstrap 3 trainingBootstrap 3 training
Bootstrap 3 training
 
Breaking the oracle tie
Breaking the oracle tieBreaking the oracle tie
Breaking the oracle tie
 
Distributed Data Analysis with Hadoop and R - Strangeloop 2011
Distributed Data Analysis with Hadoop and R - Strangeloop 2011Distributed Data Analysis with Hadoop and R - Strangeloop 2011
Distributed Data Analysis with Hadoop and R - Strangeloop 2011
 
Hadoop Developer
Hadoop DeveloperHadoop Developer
Hadoop Developer
 
Introduction to Big Data & Hadoop
Introduction to Big Data & HadoopIntroduction to Big Data & Hadoop
Introduction to Big Data & Hadoop
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Android Fragment-Awesome

  • 1. Android Fragment-Awesome Matthew Gaunt
  • 2. Who is this guy? • Master in Computer Science in Bristol • Senior Android Dev @ Mubaloo • Cross Platform Dev @ Future Platforms
  • 4. What’s coming up • Design - I can haz pretty • Dips • Buckets? • What buckets? • The story of buckets • Tips + Examples
  • 5. Dips Density Independent Pixels Abstract the screen size (think rounded corner rectangle) Never assume dip > pixels
  • 6. Buckets? ldpi mdpi hdpi xhdpi
  • 7. What Buckets? Screen density (ldpi, mdpi, hdpi, xhdpi) Orientation (port, land) Android Version (v4, v11) Screen size (small, normal, large, xlarge)
  • 8. Eeks lots of Images
  • 9. How to use Buckets • Images - [ldpi, mdpi, hdpi, xhdpi] [small, normal, large, xlarge] • Layout -[land, port] • Themes / Styles - [v4, v11] • Dimensions - [small, normal, large, xlarge]
  • 12. The History... ldpi <port> mdpi land hdpi 1.5 1.6
  • 13. The History... small ldpi normal <port> mdpi large land hdpi xlarge 1.5 1.6 3.0 (ish)
  • 14. The History... small ldpi normal ldpi mdpi <port> mdpi large hdpi land hdpi xlarge xhdpi 1.5 1.6 3.0 (ish) 4.0
  • 15. Recap • Lots of buckets • Lots of resources to apply the buckets to • How it relates to other platforms like iOS
  • 17. Phones / Tablets? ldpi mdpi hdpi xhdpi total Small 1.7% 2.4% 4.1% Normal 0.7% 18.5% 66.3% 2.5% 88.0% Large 0.2% 2.8% 3.0% XLarge 4.9% 4.9% ldpi mdpi mdpi hdpi ? hdpi ? xhdpi ? xhdpi ? Phones Tablets normal / small large / xlarge
  • 18. Hitting Both? drawable For all buckets drawable-ldpi drawable-mdpi Base drawable-hdpi drawable-xhdpi drawable-large-? Additional drawable-xlarge-?
  • 19. Tips to Reduce Work 1 Use values everywhere (dimens, ints, etc.)
  • 20. Tips to Reduce Work values dimens.xml <resources>         <dimen name="default_text_size">20sp</dimen>         <dimen name="default_large_text_size">30sp</dimen>         <dimen name="splash_vertical_spacing">20dp</dimen>         <dimen name="gauntface_tag_bottom_spacing">20dp</dimen>         <dimen name="gauntface_tag_padding">5dp</dimen>         <dimen name="gauntface_tag_radius">10dp</dimen>         <dimen name="splash_gauntface_progress_bar">30dp</dimen>         <dimen name="generic_dialog_padding">15dp</dimen>         <dimen name="generic_dialog_bg_radius">4dp</dimen>         <dimen name="generic_dialog_title_spacer_height">4dp</dimen>         <dimen name="generic_dialog_title_spacer_vertical_spacing">10dp</dimen>         <dimen name="sync_info_padding">10dp</dimen>         <dimen name="sync_info_title_text_size">35sp</dimen>         <dimen name="sync_info_msg_text_size">20sp</dimen>         <dimen name="sync_info_bg_radius">10dp</dimen>         <dimen name="sync_info_prof_pic_radius">8dp</dimen>         <dimen name="sync_info_prof_pic_size">128dp</dimen>     </resources> values-land dimens.xml <resources>         <dimen name="default_text_size">15sp</dimen>         <dimen name="default_large_text_size">25sp</dimen>         <dimen name="splash_vertical_spacing">10dp</dimen>     </resources>
  • 21. Tips to Reduce Work values values-land
  • 22. Tips to Reduce Work 2 Learn the ways of the nine patch
  • 24. Tips to Reduce Work 3 Use <Shape> drawables
  • 25. Tips to Reduce Work <shape     xmlns:android="http://schemas.android.com/apk/res/android"     android:shape="rectangle">     <gradient         android:angle="0"         android:endColor="@color/dark_blue"         android:gradientRadius="660"         android:startColor="@color/splash_light_blue"         android:type="radial" /> </shape>
  • 27. Tips to Reduce Work 4 Use Themes & Styles www.gauntface.co.uk/blog/2011/01/18/android-ui-reference
  • 28. Tips to Reduce Work values themes.xml <resources> <style name="Theme.FacebookSync" parent="@style/Theme.FacebookSync.Support">         ...     </style>     <style name="Theme.FacebookSync.NoTitleBar">         ...     </style>     <style name="Theme.FacebookSync.Dialog" parent="@style/Theme.Dialog.Support">         ... </style> </resources> values-v11 themes-v11.xml <resources>     <style name="Theme.FacebookSync.Support" parent="@android:style/Theme.Holo"></style>     <style name="Theme.Dialog.Support" parent="@android:style/Theme.Holo.Dialog"></style> </resources> values-v4 themes-v4.xml <resources>     <style name="Theme.FacebookSync.Support" parent="@android:style/Theme.NoTitleBar"></style>     <style name="Theme.Dialog.Support" parent="@android:style/Theme.Dialog"></style> </resources>
  • 30. Tips to Reduce Work 5 Give up control - be fluid
  • 31. Tips to Reduce Work Note: Not the best example ;)
  • 34. Thanks :) @gauntface matt@gauntface.co.uk