android 编程 怎么html适配不同分辨率率的手机

android针对不同的机型分辨率的适配方案
开发 Android 客户端时,面对众多的厂商机型,分辨率要怎么适配?
厂商太多,分辨率也太多,常规的好像是320X480,480x800,480x854,常规的办法我理解的应该是只适配一种,即目前市面上最高分别率的android手机的分别率,请问一般的移动互联网企业做客户端是基于什么来安排这个分辨率的适配问题呢?
按票数排序
,一个Android攻城师
、知乎用户、
1.关于布局XML文件
在res目录下创建不同的layout文件夹,比如layout-640&360,layout-800&480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
2.关于图片资源的设计
res目录下,建drawable-mdpi、drawable-ldpi、drawable-hdpi三个目录,这三个主要是为了支持多分辨率。
drawable-hdpi里面存放高分辨率的图片,drawable-mdpi里面存放中等分辨率的图片,drawable-ldpi里面存放低分辨率
的图片,系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。在开发程序时为了兼容不同平台不同屏幕,各自文件夹根据需求均存放不同版本图
可以先协助设计师针对960X640分辨率的手机设计一套图,这套图正好可以给IOS 4使用;
将这套图缩小50%,得到的图就直接可以给IOS 3以及480X320的手机;
将这套图缩小到80%,得到的图就直接可以给800X480手机使用;
然后你仔细观察缩小得来的图,如果发现某一张看着实在不好看,就让设计师重新设计一个,因为图缩小的话,可能会变形什么的。。
这样下来,就已经实现了960X640、800X480、480X320三种分辨率手机了;
854X480分辨率手机可直接使用800X480的图,当然你需要专门设计几张特殊的图,比如splash、aboutMe等。。
至于320X240,忽略吧。。
至于更高分辨率的手机,重新设计吧。。
另外,好好使用9.png;
9.png格式的图片是安卓平台上新创的一种被拉伸却不失真的东西,他可以保证图片被拉伸之后不失真、不变形。
3.关于布局文件中的单位
尽量用dp、dip;
,kubisoft创始人
知乎用户 赞同
ldpi/mdpi/hdpi不同目录什么的,是比较基础的入门知识,大家肯定都知道,但不知道怎么用比较好。我来说点实际怎么操作。
装android studio,可以直接在不同分辨率下预览。
先做某一个尺寸的,尺寸尽量写dp为单位,然后用android studio在不同的屏幕尺寸下预览,看到不满意的就调整。
调 整的时候,尽量不要采用不同的layout.xml,
只要把原来的layout.xml里面的padding和margin什么的改成@dimen/xxx ,
然后到dimension.xml里面去加上,然后这个dimension.xml放到不同分辨率的目录下面,什么hdpi/mdpi的。
,职业: 软件工程师 兴趣: 阅读、Coding
知乎用户 赞同
这个问题内容太广泛了。主要还是以下几点:
1. 布局中不要写死, 既单位不要用px,尽量用dp,或者match、warp
2. 有些图片适合使用ninepath的,尽量使用ninepatch
3. 如果不想设计多套图片,那就设计最大的那套。压缩总比拉伸好
4.建立多个layout文件夹,文件夹名称为layout-800x480等。需要适应那种分辨率就写成什么。(这种方式太累了,还会导致应用大,不建议)
关键还是在布局和图片,希望对你有帮助。
最近研究了下微信的apk,发现他们只用一套UI分辨率,通过.9.png图片适配了几乎所有的分辨率。神奇。建议你也研究一下。
,移动互联网开发者,国家二级足球裁判
就图片这方面讲,一般来说,适配分辨率最高的就可以了,其他分辨率,系统会自动根据屏幕大小对图片进行压缩。不过,这么做的前提是不过分考虑特殊比例屏幕。不建议对各种分辨率分别出一套图,这样会导致app过大,而且制作成本也高。
对于设计师,针对Android这种手机,应该尽量把资源图片设计成可以拉伸的.9图,如果有渐变,尽量横向或竖向单方向渐变,这样能大大减小安装包大小,同时也能提高处理速度。
,软件工程师
用一套较大分辨率的图进行压缩比较好。
参考 /question/
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。
首先:你需要在AndroidManifest.xml文件的元素如下添加子元素
android:normalScreens="true" android:anyDensity="true"
android:smallScreens="true"&
名如其意,以上是为我们的屏幕设置多分辨率支持(更准确的说是适配大、中、小三种密度)。android:anyDensity="true"
,这一句对整个的屏幕都起着十分重要的作用,值为true,我们的应用程序当安装在不同密度的手机上时,程序会分别加载hdpi,mdpi,ldpi文件
夹中的资源。
&相反,如果值设置为false,即使我们在hdpi,mdpi,ldpi文件夹下拥有同一种资源,那么应用也不会自动地去相应文件夹下寻找资源,这种情
况都是出现在高密度,以及低密度的手机上,比如说一部240&320像素的手机,如果设置
android:anyDensity="false",Android系统会将240 x
320(低密度)转换为320&480(中密度),这样的话,应用就会在小密度手机上加载mdpi文件中的资源。
2.细心的人会发现自android2.0开始之后drawable文件被三个文件夹drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹所取代,有些人
员为了让应用程序默认地加载某些图片,他们会特意地去在android2.0之后的应用程序中重新创建drawable文件夹,其实这样做完全没有必要,
通过第一段的分析我们得知,android:anyDensity="false",则应用会将大小密度转变成中密度,从而去加载mdpi中的资源。这里
同样,当android:anyDensity="false",则应用会去加载mdpi中的资源。
总结一下:
第一:android:anyDensity="true",系统会依据屏幕密度,自动去找对应的文件夹
第二:android:anyDensity="false",
(1)&&&&&&&&&&&&&
如果drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源
(2)&&&&&&&&&&&&&
如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源。
(3)&&&&&&&&&&&&&
如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有对应的图片资源,那么系统会加载drawable-mdpi文件夹中的资源
3. 注意上图各种文件夹的不同表示。
drawable-hdpi 该图片即适用于横屏,也适用于竖屏
drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹中的资源
drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源
有时候会根据需要在代码中动态地设置某个值,比如地图,地图的pin和地图的地址提示框的相对偏移量在不同密度的手机上是不同的。这时候可以通过以下方法求出屏幕密度:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int densityDpi = metric.densityD& //
屏幕密度DPI(120 / 160 / 240)
然后可以在代码中为这几种密度分别设置便宜量
但是这种方法最好不要使用,最好的方式是在xml文件中不同密度的手机进行分别设置。
这里地图的偏移量可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置
值得一提的是:
这里的负数是完全起作用的,系统会认为它是一个负值
4. 各大手机厂商对于操作都有或多或少的改动,当然这些改动会对我们应用程序产生某些影响
(1)系统源代码中连接music服务的aidl文件所在包名:com.android.music
(2)LG则可能将该aidl文件修改所在的包(例如修改为com.android.music.player),并且修改其中的文件内容(增加一个方
法,或者减少几个方法,或者修改方法名称)那么我们的应用要想在LG的手机上发布,那么我们就必须改变所要连接的aidl文件,必须跟LG厂商修改的完全
5. 国际化问题.
有时候在xml中设置了相应的语言,但是为什么当我们更改语言之后,UI显示仍然不起作用?
不要怀疑是系统出了问题,这与我们在代码中引用values/string.xml中字符串的方式有关。
&& 错误的方式:
&& 1. 声明全局变量private static
String tempS
在onCreate方法中对该变量赋值tempStr = context.getString(R.string.test);
在更新UI的方法(非onCreate方法)中引用该变量。textView.setText(tempStr);
原因是由于,当修改本地语言时,onCreate不会再被执行一遍. 变量tempStr 依然会使用页面刚启动时加载的默认英语。
&& 正确的方式:
直接进行第三步:textView.setText(context.getString(R.string.test));
参考:/kf/805.html
参考 : http://blog.csdn.net/jiangxinyu/article/details/8598046
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看:10738|回复:20
助理工程师
Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?
& &其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
助理工程师
android做的太智能了,谢谢版主分享,学到了新知识
助理工程师
3Q,每天积累一点点
助理工程师
这个要顶。。。
助理工程师
初级工程师
这个很不错,不过提一下细节:注意参数写法哦。
大参数写在前面哦,还有就是官方不推荐使用这个配置,应使用屏幕尺寸来配置来代替屏幕分辨率配置。
助理工程师
layout-hdpi
layout-mdpi
layout-ldpi
助理工程师
不过我还有一个疑问,这样应该只是改变布局了,但是图片资源怎么办?比如背景图片,你设计的是480×320,这些不可能自己适应吧?
助理工程师
顶!!!!!& &
助理工程师
还可以这样啊?学习 了
助理工程师
为什么 我放了三套图& &&&但是总是调用drawable-mdpi中的图片啊
助理工程师
调用哪个图是由你模拟器/手机的分辨率决定的
助理工程师
那写代码的时候 坐标什么的 尺寸什么的 根据大图写 还是小图?
在不同的设备下,适应不同分辨率实现了。但是,如果再不同分辨率下的坐标,我们怎么让其适应呢?
初级工程师
获取手机分辨率 是一个方法, 也可以根据密度来做! 楼主叫你去网上搜一下 。自适应方面的东西。
我的新浪微薄:/xuanyusong
对 一般的软件 解包都可以看见这个
初级工程师
引用:原帖由 hkhvcshv 于
23:15 发表
对 一般的软件 解包都可以看见这个 支持哈!
我的新浪微薄:/xuanyusong
提示: 作者被禁止或删除 内容自动屏蔽
提示: 作者被禁止或删除 内容自动屏蔽
谢谢,每天能学习一点新知识Resolution and Screen Sizes
Phone 8支持WVGA、WXGA、720p三种分辨率,这与只支持一种WVGA分辨率的Windows Phone 7.1有很大不同,在Windows Phone 8 Update 3中,还加入了对1080p分辨率的支持,下面介绍了如何对不同分辨率进行适配,以及与其他平台的对比。
WVGA:分辨率480*800,纵横比:15:9,与Windows Phone 7.1唯一支持的分辨率相同。
WXGA:分辨率768*1280,纵横比15:9,对480*800按照1.6x倍率缩放。
720p:分辨率720*1280,纵横比16:9,对480*853按照1.5倍缩放(对480*800按照1.5倍缩放后在高度上再增加80个像素)
1080p:分辨率,纵横比16:9,对480*853按照2.25倍缩放(注意:在系统内部,对于1080p分辨率的屏幕,ScaleFactor属性返回的值仍然与720p相同,是1.5,而不是其实际缩放倍率2.25,系统内部实际上是将各种针对于720p的图片资源应用于1080p分辨率,而不是为1080p分辨率单独准备一套资源)。
下图展示了对于不同分辨率的显示效果。
iPhone与Windows Phone情况类似,支持的分辨率较少,目前主流只有普通屏幕的320*480,Retina屏幕的640*960和,适配起来也相对容易。但是Android平台由于其特有的开放性,屏幕尺寸和其所支持的分辨率也多种多样,主流分辨率有480*800、480*854、540*960、720*80等,同时,对于Android 4.0以上的系统,有些厂家使用了系统自带的虚拟键盘,这样会占用一定的屏幕高度,这样,对于应用开发者来说,要做很多工作来确保显示给用户的界面不会出现偏差与失真。
DPI即Dots&per&inch,表示每英寸的点数,也称像素密度。只知道分辨率和屏幕尺寸还不能很好的描述出屏幕的特性,例如,对于同样分辨率、大小分别为4英寸和14英寸的屏幕,他们的DPI显然不同,4英寸屏幕清晰度要远好于14英寸的屏幕。
各开发平台都提供了获取屏幕DPI的接口,Android中利用DisplayMetrics获取DPI,IOS利用UIScreen获取DPI,与这些接口相对应,在windows phone和windows应用商店应用开发中您可是使用DisplayProperties或DisplayInformation,以下详细介绍windows phone和windows平台上获取屏幕DPI的方法。
您可以使用DisplayProperties类的LogicalDpi&属性获取屏幕DPI,该属性为只读属性。该类位于&Windows.Graphics.Display命名空间,只要引入该命名空间,您可以在程序的任何地方获取屏幕DPI。但是DisplayProperties在windows 8.1之后将不再被支持,相代替微软为您提供了DisplayInformation,DisplayInformation不仅提供了获取屏幕DPI LogicalDpi&属性,还提供了RawDpiX和RawDpiY属性以获取沿X轴和Y轴每英寸的点数。所以您最好使用DisplayInformation,以便您的程序能在windows 8.1及更高版本中能够很好的被支持。
更多信息请参见DisplayInformation.、DisplayProperties、获取DPI示例
由于所有的Windows Phone 7.1手机只支持一种分辨率,所以只要你的布局在一台Windows Phone 7.1上展示良好,其在所有的Windows Phone
7.1手机上都会显示良好,你无需考虑每个控件如何伸展和流动。
在Windows Phone 8中,你就需要不得不调整你的控件和UI元素的布局,使其在每个分辨率的宽高比下都会正常显示。由于Windows Phone
8 Update 3支持两种不同的屏幕宽高比:15:9和16:9,对于一种宽高比显示正常的控件可能会在另一种宽高比下出现预料之外的情况。
为了使页面在WVGA、WXGA、720p、1080p的分辨率下正确显示,不要在代码中将控件的高度、宽度和间距写成固定的。在你从工具箱中将空间拖出来后,请将自动添加的间距删除或者仔细进行测试。
你可以使用像Grid control这样的容器来创建自适应的布局,将控件放到grid中,并使用*和Auto来设置行和列的高度和宽度,而不是将控件的高度和宽度固定的写在代码中。这样,应用程序就会拉伸或者收缩来自动适应当前用户手机的高度和宽度。如果你将宽度和高度固定地写在代码中,则布局就不会根据分辨率来自动适配了。
注意:一定要确保你的应用在每一种宽高比(15:9和16:9)下进行测试,对每一种分辨率进行测试并不是严格要求的,除非你为每一种分辨率使用了不同的图片资源。
下面的XAML展示了使用Grid control来实现这些布局的代码。
这个应用对于WVGA、WXGA、720p、1080p具有自适应的动态布局,由于将输出框的Height属性设置成了Auto,它在WVGA和WXGA的手机上具有相同的尺寸,按钮会缩放以适应剩余的空间。在720p和1080p分辨率下,按钮会稍稍高于WVGA和WXGA分辨率上的尺寸。
你可以设置MinHeight和MaxHeight属性来设置最小高度和最大高度,一定要记住,在屏幕上任何方向小于8mm的元素都会无法使用户可靠地按下,你可以使用MinHeight和MinWidth来确保交互控件不会过度缩小。你可以结合使用这些属性来使布局对于WVGA分辨率缩小,但是对于更高的分辨率不会伸展。
在iPhone上的情况
基于IOS SDK 4.0及以后版本的应用程序需要在不同分辨率设备下运行,iPhone以一种简单的方式来支持多分辨率屏幕的情况,大部分处理不同类型屏幕的工作已经由系统框架处理。但应用程序本身也需要做些工作来修正位图图片,如果应用本身要利用像素,也需要做额外的工作。但是由于iPhone设备的规格比较统一,屏幕尺寸和分辨率种类较Windows Phone还要少,且屏幕的宽度完全一致,只是在高度上略有差异,适配起来也更加简单。
iPhone的3.5寸屏幕有普通屏幕320*480和Retina屏幕640*960,这两种分辨率恰好长宽均为2倍,iPhone中规定,对于普通屏幕,一个像素对应一个“点”,对于Retina屏幕,两个像素对应一个“点”,所以这两种屏幕都是320*480个点,另外还有iPhone5系列的640*1136,转换成点就是320*568,所以只需考虑在高度上的适配即可。一般情况下,只需要在设置控件位置之前,判断一下当前的self.view的高度,即可按需安排控件的位置。
在Android上的情况
Android程序的分辨率种类和像素密度多种多样,对于应用程序,Android系统对于各种设备提供了一致的开发环境并完成了大部分适配用户界面的工作,同时,系统也提供了一些API来让你针对特定分辨率和像素密度来控制应用程序的用户界面。在安排Android应用程序的布局之前,首先要了解以下的概念:
屏幕尺寸:屏幕的物理尺寸,通过屏幕的对角线来衡量,为了简单起见,Android将屏幕尺寸分成了四个广义的尺寸:小、正常、大、特大。
屏幕密度:屏幕物理区域内的像素量,通常指的是DPI(每英寸点数),例如,一个低密度屏幕与正常密度或者高密度的屏幕相比,在给定区域内具有较少的点数。为了简单起见,Android将屏幕密度分成了四个广义密度:低、中、高和超高。
方向:从用户的视角看到的屏幕的方向:横向或者纵向。也就是说屏幕的宽高比是宽的或者是高的。
分辨率:屏幕上的物理像素总数,当添加对多屏幕的支持时,应用程序并不直接与分辨率打交道,而是应该关心屏幕尺寸和像素密度。
密度独立的像素(dp):当你定义UI布局的时候应该使用的虚拟像素单元,以一种密度无关的方式来表达布局。
从Android1.6开始,就已经提供了对多种屏幕尺寸和密度的支持,你可以利用系统的这种特性来优化你的应用程序,使其不仅能正确显示,还能够为使用者在每一种屏幕上提供最佳的用户体验。在为不同的屏幕设计UI时,设定一个基准,比如以480*800、密度为1.5定为hdpi base,以720*1280、密度为2.0定为xhdpi base。如此设置,其他相同密度值的分辨率,都会比这些基准略大,屏幕变大之后的布局调整要比变小的调整要容易的多,在需要调整的地方进行判断,并调整空间的LayoutParams即可。
图像、视频、音频和图标这样的资源占据了一个应用的很大部分,将对应所有分辨率的资源都包含在你的应用中会消耗应用中的许多空间,对于大多数应用,我们建议只包含WXGA的资源,WXGA的资源质量很高,并且对其他分辨率自适应尺寸也比较好。
由于WXGA/WVGA和720p/1080p分辨率有着不同的宽高比,在一些情况下可能需要在应用中包含针对不同分辨率的独特图像。当你想要为你的应用程序添加针对所有分辨率的支持时,可以使用下边的步骤检测设备的分辨率然后在运行时载入相关图片。
在运行时载入与分辨率相关的图片
在你的工程中,添加针对WVGA、WXGA、720p分辨率的图片,本例中,我们将其命名为MyImage.screen-wvga.png、MyImage.screen-wxga.png和MyImage.screen-720p.png。
将图片的Copy to Output Directory属性设置为copy always。
在你的工程中添加一个名为ResolutionHelper.cs的类,并将下属代码复制并粘贴到其中。
public enum Resolutions { WVGA, WXGA, HD };
public static class ResolutionHelper
private static bool IsWvga
return App.Current.Host.Content.ScaleFactor == 100;
private static bool IsWxga
return App.Current.Host.Content.ScaleFactor == 160;
private static bool IsHD
return App.Current.Host.Content.ScaleFactor == 150;
public static Resolutions CurrentResolution
if (IsWvga) return Resolutions.WVGA;
else if (IsWxga) return Resolutions.WXGA;
else if (IsHD) return Resolutions.HD;
else throw new InvalidOperationException("Unknown resolution");
上面的类中使用ScaleFactor属性来确定设备的分辨率。
添加一个名为MultiResImageChooser.cs的类,并在其中包含下属代码。这个类使用前面创建的ResolutionHelper.cs类来确定设备的分辨率,并针对检测到的分辨率,根据相关的图片URI创建一个新的BitmapImage并返回。
using System.Windows.Media.I
public class MultiResImageChooserUri
public Uri BestImage
switch (ResolutionHelper.CurrentResolution)
case Resolutions.HD:
return new Uri("MyImage.screen-720p.jpg", UriKind.Relative);
case Resolutions.WXGA:
return new Uri("MyImage.screen-wxga.jpg", UriKind.Relative);
case Resolutions.WVGA:
return new Uri("MyImage.screen-wvga.jpg", UriKind.Relative);
throw new InvalidOperationException("Unknown resolution type");
在MainPage.xaml中,添加一个Image元素并将它的Source属性绑定到MultiResImageChooser.cs类的返回值上。
在App.xaml中,在元素中添加下属xmlns命名空间映射。
xmlns:h="clr-namespace:MultiResSnippet"
在App.xaml中,添加下述应用程序资源。
完成上述步骤之后,系统会自动适配对应分辨率的图像资源,对于720p和1080p的分辨率,系统仍然使用的是同一套资源,自动按比例进行缩放。
在iPhone上的情况
在iPhone上为不同分辨率提供特定图片资源可以有如下几种方式:在应用程序中为每一种分辨率提供单独的图片、提供高分辨率图片供其缩放、提供矢量内容等。如果不对资源进行自动适配,对于3.5寸普通屏幕和Retina屏幕,由于其宽高比例一致,自动缩放之后不会造成比例失真,对于4寸屏幕,则会有两种选择:1、 拉伸以铺满屏幕(这样会造成比例失真),2、保持比例(两端各留出44个点的高度的黑边)。所以,为了能够完美支持4寸Retina屏幕,最好为其提供对应特定分辨率的图片资源。
在Android上的情况
在Android上面也一样,对于多分辨率,在res目录下,创建drawable-ldpi、drawable-mdpi、drawable-hdpi三个目录,分别存放低分辨率、中分辨率、高分辨率的图片,系统会根据机器的分辨率分别在这几个文件夹中寻找对应的图片。如果不想提供多套图片,则可以只提供最大分辨率的图片,让系统自动执行图片缩放。同时,对于Android系统,有一种创新的格式叫做“9.png”,这是一种可以拉伸却不失真不变形的图片格式,充分利用这种图片,也可以达到很好的效果。
为了针对所有分辨率显示启动画面,使用名称为SplashScreenImage.jpg分辨率为768*1280的单个文件,手机会自动将其缩放到正确的尺寸。
如果想要对所有分辨率提供像素完善的启动画面,你可以以下面的名称来添加图片。
SplashScreenImage.Screen-WVGA.jpg
SplashScreenImage.Screen-WXGA.jpg
SplashScreenImage.Screen-720p.jpg
Phone 8 Update 3将会默认在1080p的手机上使用720p的启动画面。
所有的启动画面图片文件必须在应用程序工程的根目录下。
更多信息,可以查看如何为Windows
Phone创建启动画面。
在iPhone上的情况
对iPhone设置启动画面,如果普通分辨率的资源名称为:Default.png,则其Retina屏幕对应图片应该是Default@2x.png,4英寸屏幕对应的图片应该是Default-568h@2x.png。
在Android上的情况
在Android上,启动画面是作为一层布局写入到程序中的,载入启动画面的方法与载入背景图片的方法一致,可以只提供一张图片供系统自动缩放,也可以提供多套资源供不同的分辨率使用,这里同样推荐使用“9.png”图片格式,以达到只提供一张图片,且缩放情况下也不会发生失真的目的。
对于磁贴和应用程序图标,你必须只添加针对WXGA分辨率的图片,手机会针对WVGA、720p和1080p的屏幕自动将图片缩放到正确的尺寸。更多关于磁贴以及其尺寸的信息,请参见Windows Phone的磁贴。
在iPhone上的情况
在iPhone中,默认情况下可以只提供一张57*57的图片Icon.png作为应用程序图标,同时提供一张29*29的图片Icon-settings.png作为设置区域通用的图标。以上图标在Retina屏幕上会自动缩放适应,为了提供高分辨率的屏幕,可以提供114*114的图片Icon@2x.png和Icon-settings@2x.png的图片。
在Android上的情况
在Android设备上,由于分辨率众多,应用程序的图标也要针对每种分辨率进行设计,通常情况下,需要有36*36的LDPI图标、48*48的MDPI图标、72*72的HDPI图标、96*96的XHDPI图标,这些图标分别放在drawable-ldpi、drawable-mdpi、drawable-hdpi和drawable-xhdpi文件夹中,这样即可适应不同分辨率的手机。
在Android中,主要以密度独立像素(dp)来进行描述,以dp来描述的启动图标为48*48dp,通知栏上的图标大小为24*24dp。
Windows Phone 的布局
Windows Phone 的屏幕方向
Windows Phone 的布局和面板
Windows Phone 的磁贴
Windows Phone 的磁贴设计准则
其它微软站点安卓UI设计系列知识(一)之手机适配多分辨率适配
安卓UI设计系列知识(一)之手机适配多分辨率适配
距离上一篇关于andoridUI的帖子已经有239天了,直到今天还有朋友点赞或是私信,或是沿着留下的QQ号和群号询问我有关andoridUI设计的知识,在此很感谢大家的支持。
& &搜集了很多朋友的问题,有一个比较明显的问题是现在网络上没有相关的教程or经验说明,书店里卖的相关书籍不是大篇大段的讲photoshop的使用技巧,就是讲一些宏观的问题,所以看到上次的帖子,很是有效。
打算写这次的教程是一周之前的想法,但是由于最近工作上忙碌,下班回家还要做私单(PS:求成都地区的web 或者 andorid或者ios的UI设计私单啦),真的没有时间整理头脑里的思路。
& &偶尔还是会回过头去看自己上次的帖子,还是会发现很多表达方面不够准确的地方,理工科的知识,力求一个严谨,准确的描述。在上次的帖子里,讲解的是andoridUI的设计入手方法和标注、切图方法,略显匆忙。今天开始,把与andoridUI设计相关的,andoridUI设计本身的,标准,切图等后续工作的,甚至是一些细小的工作经验方面的问题给大家分篇讲解下,具体多少篇,暂时没有预算,先写着走吧。
经常会在群里看到新人问:我如何转UI,每天坚持画icon吗?
就我个人工作经验来说,我大概总结一下“如何转UI,如何学好UI设计”几点建议,如果临时想起,我会在后面的章节里添加。
1.&&&一定要玩机器,玩APP。
你作为移动互联网行业中的一员,你不经常玩机器,玩APP,你是做不好UI的,
无论什么档次的手机,借周围朋友的手机看看玩玩。了解最近市场上火热的手机,看看它们的参数;同时,你要多玩app,各个行业的app都下载下来玩玩,觉得漂亮的界面别忘了截图下来,保存在手机里。在这里,推荐大家几个获得好app的途径,安卓市场里有:“ifanr”,“最美应用”,或是搜索微信订阅号“nice-app”,“appsolution”。
当然,dribbble,behance,pinterest,站酷,花瓣这些设计网站,也应该是你每天必看的。
2.无论是你iOSUI还是andoridUI,甚至是WPUI,一定要有一台测试机
不是说只有程序员才要测试机,咱们UI设计师也要有一台测试机,个人建议UI设计师一定一定要向公司申请,安卓方面,最好是超高清分辨率(720*1280)的,市面上这样的机器太多太多了,小米3,红米,三星note2等等,至于为什么,我们将在后面的篇幅里给大家解释。
很多时候,我们在电脑上画图,总觉得“尺寸够大了”“距离够宽了”“颜色够亮了”,但是一旦把设计资源交付给程序员,做出来的效果往往大跌眼镜。所以,作为UI设计师,在设计过程中一定要把效果图放在机器上查看,有时候,你真的会发现,原本“感觉”不错的稿子,在机器上查看,就走了样。在这里,推荐大家一个软件:PS play,下载地址:,具体使用方法见网站,这里就不做阐述了
3.培养一个靠谱的程序小伙伴。
很多时候,UI设计师在设计效果图中,或是切图中,把握不了所用的切图方式在程序里会不会出现预期的效果,是多磨希望能有一个即时的设备能看到运行的效果。我现在所了解的类似这样的软件有AppInventor,但是负责的操作,让设计师们还是有点搞不懂,如果网友有更好的推荐,请回复。于是我培养了一个靠谱的小伙伴,偶尔我把握不到的效果,我就把资源传给他,然后麻烦小伙伴按照所标注和解释的方法作出效果来看是不是自己所想要的。
4.&熟悉各个平台的UI设计规范。
每天坚持画icon是学习UI的一个小部分,画icon是锻炼一个UI设计师的耐心,造型能力,色彩搭配能力,质感表现能力等。除此之外,你还必须去了解,掌握,熟悉各个平台的设计规范,但是始终要记住,设计是视觉的游戏,不要沉溺于规范里,不要被条条款款约束了自己的灵感发挥。
5.将review做为UI工作的一个阶段。
老实说,在这个方面,我自己都做得不尽责,可能是因为工作时间久了,就懒惰了。或者说对于程序员的期望太高,很多时候,就懒得去看程序那边把UI实现出来的效果。
但是,在严格的公司,一定会有一个UIreview的步骤,看看程序最后实现的效果是不是和自己预期的一样。它产生在UI编程工作(这里谈到的UI编程就相当于网页的前端开发,写html,css等)结束后,如果没有配置专门的UI编程人员,那么就产生在开发结束后,作为UI设计师,对于程序实现效果的验收除了是对产品负责之外,也是提高自己UI设计能力的过程,因为很多时候,由于我们在设计过程中用到的单位和程序开发过程中用到的单位不同,或者说安卓设备各种分辨率不同,会带来预期之外的效果。所以,在工作中,把UI review做好,也能提高自己的UI设计能力,获得很多细小的设计经验。
& &有了以上几点准备,接下来我分享下一些安卓设计的知识。
& &北京时间日凌晨对外公布了该Android新版本的名称,为Android 4.4,代号 KitKat,接下来的文章里,我们都在此基础上进行讨论。
谷歌公司对于安卓4.4的规范官网地址是:(中文版)(英文版)个人建议在熟悉中文版的基础上,去看看英文版,毕竟老外的东西,翻译后的中文版比起英文原版有些地方表达和描述会不一样,甚至少了一些些细节的东西。
& &首先,我们谈“设备”,设备作为UI设计的大环境,也是一个andoridUI设计师最为痛疼的问题,主要涉及到各种设备之间的适配问题,在今后的篇章中,我会讲解各种设备的适配方法。
& &在最新的规范网址中,官方为我们描述了以下几种分辨率的设备:
& &我们从图中看到,有mdpi,hdpi,xhdpi xxdhpi,xxxdhpi几种分辨率的机器,如果我没有记错的话,官网在近期更新过这个网页,在4.4没有发布之前,还加入了最小的一个分辨率 ldpi的设备。
& &我们看到图中有一些说明“1x,1.5x,2x,3x,4x”。我们可以理解为相对单位或是倍数关系。在图中对于mdpi分辨率一栏有说明“basceline”,也就是说将mdpi作为一个基础,一个参考物,它为1倍的话,那么hdpi就为1.5倍,xhdpi为2倍,其他以此类推。
& &作为设计师的我们,要侧重关心的是横向分辨率,各种分辨率的设备其分辨率的数值为:
& &横向上来看:
& &mdpi: 360左右
& &Hhdpi:480左右(1.5倍)
& &xhdpi:720左右(2倍)
& &xxdhpi:1080左右(3倍)
& &xxxdhpi:1440左右(4倍)
& &这里需要说明一点的是:设备的尺寸和分辨率没有绝对的关系,不是说屏幕大的手机就一定更清晰。如果你的老板叫你“为某一个设备做设计并只适配它的分辨率,那你一定要去看的是它的分辨率,而不是它的尺寸。”
& &之前,我们说过,作为一名UI设计师,你一定要多玩手机,我们如何看一款手机,它到底属于哪一个分辨率呢?我举几个例子说明:
小米1,从网络上查到的相关参数,我们发现。它的分辨率为854*480(通常在描述分辨率的时候时候描述为Y轴分辨率*X轴分辨率),那也就是说,它的横向分辨率为480,属于hdpi分辨率的设备。
红米,从图中看到它分分辨率为;,也就是说它的横向上的分辨率为720.属于xhdpi分辨率的设备。
三星note3,,横向上分辨率为1080,属于xxdhpi分辨率的设备。
我们再来看一组数据:
& &从数据中,我们可以发现。低分辨率的设备正在逐渐淘汰,Xhdpi或者xxhdpi等高分辨率的设备已经几乎成为统一的标准
& &只有了解“设备”这个大环境。你才能做好接下来的UI设计工作。
& &下期预告:安卓设计中的主题和风格问题,holo风格到底是什么?如何做holo风格。
& &我们下期见。
发表评论:
TA的最新馆藏

我要回帖

更多关于 h5适配不同分辨率手机 的文章

 

随机推荐