《Pro Android Graphics》讀書筆記之第五節

傲慢的上校發表於2014-05-24

Android DIP: Device-independent Pixel Graphics Design

How Android Supports Device Displays: UI Design and UX 

Device Display Concepts: Size, Density, Orientation, DIP 

size Type

small,normal,large,extra large,extra extra large

screen density

the number of physical pixels contained in a one inch area of a given device’s display screen

density type

low or LDPI, medium or MDPI, tv or TVDPI, high or HDPI, extra high or XHDPI and XXHDPI

Density Independence: Creating Similar User Experiences

Android Multi-Screen Support Via <supports-screens> Tag

				in manifest:	<supports-screens android:largeScreens="true" android:xlargeScreens="true" />

Providing Device-Optimized User Interface Layout Designs

Using Android’s SmallestWidth Screen Configuration Modifier

takes the format sw#dp 

使用這個格式,進行螢幕判斷,使用不同xml檔案。

720 DIP, then you would use this qualifier to create the layout resource folder named /res/layout-sw720dp to hold your user interface layout definition XML files for your app’s Activities

Using the Available Screen Width Screen Configuration Modifier

w#dp (example: w480dp):橫豎屏 切換 使用不同佈局(根據可視寬度)

不用同時關注方向和螢幕大小:This is due to the fact that even on the larger tablet devices, you often don’t want to use the same multiple pane UI layout design for the portrait orientation as you do for the landscape orientation. With the width screen configuration modifier, you can use something like w640dp to specify a 640 DIP minimum available screen area width for your layout, instead of having to implement both the screen size qualifier and orientation qualifier.


Using the Available Screen Height Screen Configuration Modifier

h#dp (example: h600dp)

Providing Device-Optimized Image Drawable Assets

資源匹配過程

no density-matching assets can be located in your /res/drawable folders, Android will use your default assets, which are kept in the /res/drawable folder; if none are found there, Android will use the MDPI density resources in the /res/drawable-mdpi folder, and will then scale these up or down as needed to match the current screen size and density.

作者經驗

I keep only XML definitions for things like animations and transitions in this /res/drawable folder, and then keep all of my pixel-based digital imaging assets in those various density-specific /res/drawable-dpi folders. 

本資料夾沒有,去別的資料夾找,然後按比例縮放。

res/drawable-nodpi

no scale 

/res/drawable-land-hdpi would contain landscape HDPI assets


The DisplayMetrics Class: Size, Density, and Font Scaling

package : android.util

display physical size in both the X and Y dimensions

DisplayMetrics currentDeviceDisplayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(currentDeviceDisplayMetrics);

DisplayMetrics : 引數


Optimizing Android Application Icons for LDPI to XXXHDPI

Installing the New App Icon in the Correct Density Folders

Configuring the AndroidManifest.xml for Custom App Icon






















 







相關文章