android系统如何自适应屏幕大小

合集下载

客户端开发:如何适配不同屏幕尺寸(四)

客户端开发:如何适配不同屏幕尺寸(四)

随着移动设备的普及,不同屏幕尺寸的适配成为了APP开发中一个重要的问题。

在客户端开发中,如何适配不同屏幕尺寸是一项需要仔细考虑的技术任务。

本文将讨论这个问题,并提供一些适配的方法和技巧。

1. 了解屏幕适配的重要性屏幕适配是指让应用程序在不同屏幕尺寸上都能够呈现出良好的用户体验。

不同尺寸的屏幕显示的内容有所不同,如果不适配,可能会导致布局错乱、文字显示不全等问题。

因此,屏幕适配在客户端开发中不可忽视。

2. 使用百分比布局一个简单而有效的适配方法是使用百分比布局。

通过设置控件的宽度和高度为百分比值,可以让控件在不同屏幕尺寸上自动缩放。

这样,无论设备的屏幕尺寸如何,布局都能够保持一致。

3. 使用自适应布局除了使用百分比布局外,还可以使用自适应布局来适配不同屏幕尺寸。

自适应布局是指根据屏幕尺寸和分辨率动态调整布局。

可以通过设置最小和最大宽度,以及固定和流动位置来实现自适应。

4. 使用多个布局文件如果应用程序的界面在不同屏幕尺寸上差异较大,可以考虑使用多个布局文件来适配不同的设备。

Android开发中可以在res目录下创建不同尺寸的布局文件夹(如layout-small、layout-normal、layout-large等),根据设备的屏幕尺寸自动选择合适的布局文件。

5. 使用尺寸限定符除了使用多个布局文件外,还可以使用尺寸限定符来适配不同屏幕尺寸。

尺寸限定符是指在资源文件中使用特定的限定符来描述尺寸。

通过限定符,可以根据屏幕宽度和高度来选择合适的资源文件。

6. 使用动态适配方案除了上述方法外,还可以使用动态适配方案来适配不同屏幕尺寸。

动态适配方案是指根据设备的屏幕尺寸和分辨率动态计算布局的大小和位置。

可以通过获取设备屏幕的宽度和高度来计算控件的大小和位置,从而实现动态适配。

7. 运行时适配在实际开发过程中,可以通过在代码中获取屏幕的尺寸和分辨率来进行运行时适配。

可以根据屏幕的尺寸和分辨率来调整视图的大小和位置,从而适配不同的设备。

移动应用开发技术适配不同屏幕尺寸方法

移动应用开发技术适配不同屏幕尺寸方法

移动应用开发技术适配不同屏幕尺寸方法移动应用的普及度越来越高,不同尺寸的手机屏幕也层出不穷,要让应用在各种尺寸的设备上都能正常显示和使用,移动应用开发者就需要进行屏幕尺寸适配的工作。

本文将介绍一些适配不同屏幕尺寸的方法。

一、布局适配布局适配是移动应用开发中最关键的一环。

基于不同手机屏幕尺寸的差异,开发者需要使用不同的布局方式来适配不同屏幕尺寸。

1. 线性布局线性布局是一种常见的布局方式,它可以根据手机屏幕的尺寸自动调整组件的大小和位置。

在使用线性布局时,开发者可以通过权重属性来控制组件在屏幕上的位置和大小比例,从而实现不同屏幕尺寸的适配。

2. 相对布局相对布局是另一种常见的布局方式,它允许开发者根据组件之间的相对位置来排列和布局。

相对布局适合于需要在页面中放置多个组件,并根据屏幕尺寸来调整它们之间的位置关系。

3. 网格布局网格布局是一种将页面划分为多行多列的方式,可以灵活地将组件放置在不同的位置。

网格布局适合于复杂的页面结构,可以根据不同屏幕尺寸的需求,动态地调整组件的尺寸和位置。

二、图片适配在移动应用中,图片是不可或缺的元素。

不同屏幕尺寸的设备需要显示不同大小的图片,开发者需要对图片进行适配来保证在不同设备上显示清晰、流畅。

1. 分辨率适配分辨率适配是对图片进行适配的重要一环。

开发者需要根据设备的屏幕分辨率来选择合适的图片,以确保在不同屏幕尺寸上显示的图片清晰度和细节。

2. 缩放适配除了分辨率适配之外,开发者还可以使用图片的缩放功能来适配不同屏幕尺寸。

通过对图片进行缩放可以保证图片在不同屏幕尺寸上显示的大小和比例合适。

三、字体适配字体适配是移动应用开发中一个容易被忽视的细节,但它对用户体验有着重要的影响。

不同屏幕尺寸的设备需要适配不同大小的字体,以确保文字在不同屏幕上显示清晰、易读。

1. 自适应字体自适应字体是一种根据屏幕尺寸自动调整字体大小的方式。

通过使用自适应字体,开发者可以确保文字在不同大小屏幕上显示的大小和比例合适。

移动应用开发技术中常见的适配不同屏幕大小和分辨率技巧

移动应用开发技术中常见的适配不同屏幕大小和分辨率技巧

移动应用开发技术中常见的适配不同屏幕大小和分辨率技巧在移动设备的蓬勃发展中,屏幕大小和分辨率的多样性给移动应用的开发带来了新的挑战。

为了确保应用在不同尺寸和分辨率的屏幕上都能够呈现出良好的用户体验,开发人员需要掌握一些适配技巧。

1. 使用约束和布局管理器一种常见的适配方法是使用约束和布局管理器,如Auto Layout或LinearLayout 等。

这些工具可以自动调整视图的大小和位置,使其适应屏幕的大小和分辨率。

通过设置约束条件和权重等属性,开发人员可以确保界面元素在不同屏幕上的适应性。

2. 使用百分比布局另一种常见的适配方法是使用百分比布局。

相比于固定像素值,使用百分比可以根据屏幕的实际大小和分辨率进行布局。

这种方法可以确保界面元素在不同屏幕上的相对位置和大小保持一定的比例,从而提高了适应性。

3. 使用多个布局文件针对不同屏幕大小和分辨率,开发人员可以准备多个布局文件。

通过在不同的布局文件中定义不同的布局方式,可以确保应用在不同屏幕上呈现出最佳的效果。

Android开发中,可以使用layout-small、layout-normal、layout-large等目录来存放对应的布局文件,系统会自动根据屏幕尺寸加载相应的布局。

4. 像素密度适配移动设备的像素密度因设备而异,开发人员需要考虑这一因素对界面元素的影响。

在Android开发中,可以使用dp(density-independent pixels)作为单位进行布局。

dp是一种抽象的单位,会根据设备的像素密度进行相应的缩放,从而在不同屏幕上实现相似的显示效果。

5. 使用可伸缩的图片资源为了适应不同屏幕的大小,开发人员可以使用可伸缩的图片资源。

这些资源会根据屏幕的实际大小进行自适应调整,以确保图片在各个屏幕上都能够正常显示。

例如,在Android开发中,可以使用.9.png格式的图片资源来实现可伸缩性。

6. 动态计算布局参数有时,开发人员需要根据屏幕的实际大小和分辨率来计算布局参数。

自适应手机屏幕宽度

自适应手机屏幕宽度

1、使用meta标签,这也是普遍使用的方法,理论上讲使用这个标签是可以适应所有尺寸的屏幕的,但是各设备对该标签的解释方式及支持程度不同造成了不能兼容所有浏览器或系统。

首先解释该标签的含义:<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>如果你完全不了解这个标签的使用需要先百度一下。

解释:content中的“width”这个width指的是什么宽度,我看过的文章对这个都没有解释的很清楚,有几个备选:虚拟窗口的宽度、手机屏幕的宽度、还是页面的宽度等等?经试验这个指的是虚拟窗口的宽度。

了解宽度之后,对后续的各种scale,就应该知道是谁与谁的比例,是虚拟窗口宽度 / 页面宽度,这样就会有问题出现安卓设备尺寸差异很大光主流的就有宽度为320 480 720 1080 等各种尺寸而以上标签只能支持一种尺寸,当然有些浏览器会自动缩放使其适应屏幕,但这不是统一标准,正确的做法是用js动态生成此标签,当然,应该先获取屏幕尺寸。

对于此标签还有以下需要分享:1)、user-scalable=no就一定可以保证页面不可以缩放吗?NO,有些浏览器不吃这一套,还有一招就是minimum-scale=1.0, maximum-scale=1.0 最大与最小缩放比例都设为1.0就可以了。

2)、initial-scale=1.0 初始缩放比例受user-scalable控制吗?不一定,有些浏览器会将user-scalable理解为用户手动缩放,如果user-scalable=no,initial-scale将无法生效。

3)、手机页面可以触摸移动,但是如果有需要禁止此操作,就是页面宽度等于屏幕宽度是页面正好适应屏幕才可以保证页面不能移动。

安卓手机页面设置方法

安卓手机页面设置方法

安卓手机页面设置方法在安卓手机上,页面设置是指调整屏幕显示的内容和布局,以便更好地适应用户的需求和喜好。

以下是一些常见的安卓手机页面设置方法。

一、壁纸设置1. 找到手机的“设置”应用,一般在应用列表中或者在快捷设置菜单中。

2. 在“设置”中找到“壁纸”选项。

3. 点击“壁纸”,选择“主屏幕”或者“锁定屏幕”。

4. 在壁纸库中选择您喜欢的图片或者从相册中选择图片。

5. 调整壁纸的位置和缩放方式,然后保存设置即可。

二、字体大小调整1. 找到手机的“设置”应用。

2. 在“设置”中找到“显示”或者“屏幕显示”选项。

3. 点击“显示”或者“屏幕显示”,找到“字体大小”选项。

4. 在字体大小选项中,选择适合您的字体大小,或者点击“自定义”调整字体大小。

5. 保存设置并退出。

三、图标布局调整1. 长按主屏幕上的空白区域,进入主屏幕设置界面。

2. 点击“桌面布局”或者“图标布局”选项。

3. 在布局选项中,选择您想要的图标尺寸和行列数。

4. 拖动图标到新的位置,或者删除不需要的图标。

5. 保存设置并退出。

四、通知栏和快捷设置定制1. 下拉通知栏,并点击右上角的“设置”图标。

2. 在设置菜单中,找到“通知和状态栏”或者“快捷设置”选项。

3. 点击“通知和状态栏”或者“快捷设置”,进入设置界面。

4. 可以根据需要进行以下操作:- 调整通知栏样式:选择是否显示通知图标和通知内容等。

- 设置快捷开关:选择要显示的快捷开关,并调整排序和显示方式。

- 隐藏特定通知:选择哪些应用的通知显示在通知栏上。

- 调整状态栏图标:可以隐藏或显示特定的状态栏图标。

- 其他定制选项:可以根据需要设置铃声、震动等通知方式。

5. 保存设置并退出。

五、屏幕显示分辨率调整1. 找到手机的“设置”应用。

2. 在“设置”中找到“显示”或者“屏幕显示”选项。

3. 点击“显示”或者“屏幕显示”,找到“分辨率”选项。

4. 在分辨率选项中,选择您想要的屏幕分辨率。

Android自适应不同分辨率或不同屏幕大小的layout布局(横屏竖屏)

Android自适应不同分辨率或不同屏幕大小的layout布局(横屏竖屏)

Android自适应不同分辨率或不同屏幕大小的layout布局(横屏|竖屏)一:不同的layoutAndroid手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

二:hdpi、mdpi、ldpi在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

更正:应该是对应不同density 的图片在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

[i]备注:三者的解析度不一样,就像你把电脑的分辨率调低,图片会变大一样,反之分辨率高,图片缩小。

[/i]屏幕方向:横屏竖屏自动切换:可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。

不同分辨率横屏竖屏自动切换:以800x600为例可以在res目录下建立layout-port-800x600和layout-land-800x600两个目录不切换:以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。

解密Android测试中的屏幕旋转和布局适配问题

解密Android测试中的屏幕旋转和布局适配问题

解密Android测试中的屏幕旋转和布局适配问题在Android开发中,屏幕旋转和布局适配是一个常见而又众多开发者头疼的问题。

当用户旋转设备时,应用程序的布局和界面需要适应新的屏幕尺寸和方向。

这就需要开发者在测试中解密并解决屏幕旋转和布局适配问题。

本文将详细介绍如何处理这些问题,以确保应用程序在不同屏幕旋转和尺寸下的正常运行。

一、了解屏幕旋转和布局适配的概念在开始解决问题之前,让我们先了解一下屏幕旋转和布局适配的概念。

1. 屏幕旋转:屏幕旋转指的是用户将设备从竖屏模式切换到横屏模式或反之。

在旋转过程中,应用程序需要根据新的屏幕尺寸和方向重新布局和适配。

2. 布局适配:布局适配是指根据屏幕的尺寸和方向来调整应用程序的布局,以保证应用程序在不同设备上正常显示,并提供良好的用户体验。

二、解密屏幕旋转问题屏幕旋转时,会触发Android系统重新创建Activity的生命周期。

这就需要开发者进行一些额外的处理,以确保数据的持久性和用户体验的连续性。

1. 保存和恢复数据:在Activity或Fragment中,可以重写onSaveInstanceState方法来保存相关数据。

然后,在onCreate或onRestoreInstanceState方法中恢复这些数据。

这样,即使屏幕旋转,用户也能够看到之前输入的数据。

2. 使用特定布局:为了适应不同的屏幕尺寸和方向,可以为不同的布局创建不同的资源文件。

例如,可以创建一个layout-land文件夹,用于存放横屏模式下的布局文件。

系统会根据设备的方向自动加载相应的布局文件。

三、解密布局适配问题布局适配问题主要包括适配不同屏幕尺寸和适配不同屏幕密度两个方面。

1. 适配不同屏幕尺寸:Android提供了多种方法来适配不同屏幕尺寸,其中一种常见的方法是使用权重(weight)属性来定义布局中各个控件的比例关系。

另外,还可以使用相对布局(RelativeLayout),通过设置各个控件之间的相对位置来适应不同的屏幕尺寸。

Android手机中实现适配不同分辨率的屏幕

Android手机中实现适配不同分辨率的屏幕

Android手机中实现适配不同分辨率的屏幕随着技术的发展,Android手机的屏幕分辨率也越来越多样化。

在开发Android应用程序时,如何适配不同分辨率的屏幕是一个重要的问题。

本文将介绍一些常用的方法和技巧,帮助开发者更好地实现Android手机中的屏幕适配。

一、了解不同的屏幕分辨率在开始适配之前,首先需要了解Android手机的屏幕分辨率。

Android设备的屏幕分辨率可以通过设备的参数获取,以便开发者能够根据不同的分辨率进行适配。

常见的屏幕分辨率有:ldpi、mdpi、hdpi、xhdpi、xxhdpi和xxxhdpi等。

每种分辨率对应的密度比值不同,开发者可以根据这些比值来设置不同的资源。

二、使用矢量图形使用矢量图形是一种常见的屏幕适配方法。

与位图不同,矢量图形是基于数学方程描述的,可以无限放大而不失真,并且适应不同的屏幕分辨率。

在Android开发过程中,可以使用SVG(可缩放矢量图形)格式的图像,通过矢量图形实现屏幕适配。

矢量图形可以通过Android Studio或者其他矢量图形编辑工具创建和编辑,并在应用程序中使用。

三、使用限定符来适配布局Android支持使用限定符来适配不同的屏幕分辨率。

开发者可以根据屏幕分辨率的密度比值来创建适合不同设备的布局文件。

常见的限定符有:layout-ldpi、layout-mdpi、layout-hdpi、layout-xhdpi、layout-xxhdpi和layout-xxxhdpi等。

通过为不同的屏幕分辨率创建适配的布局文件,可以确保应用程序在不同的设备上显示效果一致。

四、使用百分比布局百分比布局是一种灵活的屏幕适配方法,可以根据屏幕的尺寸和比例自动调整控件的大小和位置。

Android提供了百分比布局工具库,开发者可以使用百分比布局来在不同屏幕分辨率上实现自适应的UI界面。

通过设置百分比布局参数,可以使得控件在不同分辨率的屏幕上按照比例自动调整大小。

androidautosize原理

androidautosize原理

androidautosize原理Android AutoSize是一个方便自适应字体大小的功能。

从Android 8.0开始,Google为Android开发人员带来了更好的字体调整方案,这些方案使用原生应用程序符号来跨越不同大小的屏幕和分辨率,确保在各种设备上实现一致的用户体验。

具体来说,Android AutoSize的原理是为Te某tView设置minTe某tSize、ma某Te某tSize和stepGranularity属性。

当这些属性与Te某tView的字体大小相关联时,它们可以在不同大小的屏幕上自动调整文本的大小。

其中,minTe某tSize属性设置文本允许的最小字体大小。

如果设定的字体太小,就会影响可读性,因此系统最小字体大小为12sp。

ma某Te 某tSize属性设置文本允许的最大字体大小。

stepGranularity属性定义了增量大小,控制字体的调整量,避免了文本内容被截断或换行的情况。

另外,Android AutoSize还提供了自定义的Dimension类,可以使用setAutoSizeTe某tTypeWithDefaults(方法和setTypeface(方法来进行配置。

这个方法可以结合APP的自定义主题和样式来进行配置。

在实际应用中,可以在某ml布局中直接使用app:autoSizeTe某t属性,或者在代码中设置setTe某tSize(方法来进行调整。

如果要强制使用特定的字体大小,也可以手动设置setTe某tSize(方法。

在使用Android AutoSize时,需要注意以下几点:1. 需要在布局文件或代码中显式设置Te某tView的宽度和高度,以便系统可以根据宽度和高度进行文本大小的调整。

2. Te某tAppearance属性可能会影响fontsize,因此需要为字体大小设置一个固定值。

3.设置的字体大小需要位于最小值和最大值之间,否则自适应效果将无法实现。

总之,Android AutoSize为开发人员带来了更便捷的方法来自适应不同大小和屏幕密度的设备,无需手动调整字体大小。

分辨率自适应

分辨率自适应

分辨率自适应Android 设备屏幕大小有480x320 、640x360, 、800x480 ,怎样让App 自动适应不同的屏幕分辨率?andorid系统提供了应用程序自适应不同分辨率的方法。

我们可以在res 目录下创建不同的layout 文件夹,比如layout-640x360 、layout-800x480 ,所有的layout 文件在编译之后都会写入R.java 里,而系统将根据屏幕的大小自己选择合适的layout 进行使用。

1. 首先是建立多个layout文件夹(drawable也一样)。

在在res目录下建立多个layout文件夹,文件夹名称为layout-1280x720等。

需要适应那种分辨率就写成什么。

注意:a. 较大的数字要写在前面:比如layout-1280x720而不能写layout-720x1280.b. 两个数字之间是小写字母x,而不是乘号。

2. 在不同的layout下调整layout 的长宽等各种设置。

以适应不同的分辨率。

3 最后需要在AndroidManifest.xml里面添加下面一段:</application><supports-screensandroid:largeScreens="true"android:normalScreens="true"android:anyDensity = "true"/></manifest>在</application>标签和</manifest> 标签之间添加上面那段代码即可。

720p应用适应1080p分辨率方案:1. 将res目录下原layout目录重命名为layout-1280x720, 并在res下新建目录layout-1920x10802. 将layout-1080x720中的布局文件复制到layout-1920x10803.逐个修改layout-1920x1080中布局文件中的长、宽、坐标等参数,a. 根据屏幕比例等比放大,1920/1280=1.5,所以各个布局、view的宽度,x方向上的间隔例如marginLeft等都在720p数值上乘以1.5得到1080p的数值.数值都以像素px为单位。

移动应用开发中的适配问题及解决方法

移动应用开发中的适配问题及解决方法

移动应用开发中的适配问题及解决方法移动应用的普及率越来越高,不同的平台和设备数量也在不断增加。

因此,移动应用开发者需要面对一个重要的问题:如何在不同的屏幕尺寸、分辨率和操作系统版本上适配应用程序,以保证用户获得一致且良好的用户体验。

适配问题在移动应用开发中非常常见。

首先,不同的设备有不同的屏幕尺寸和分辨率,这导致应用程序在不同设备上的显示效果会有所不同。

其次,各个操作系统版本也存在差异,特别是 Android 设备的碎片化问题。

这意味着同一款应用程序可能需要在不同的操作系统版本上进行适配。

为了解决这些适配问题,移动应用开发者可以采取以下几种方法:1. 使用响应式布局:响应式设计是一种灵活的设计方法,可以根据设备的屏幕尺寸和分辨率调整用户界面的布局。

这意味着应用程序可以自动适应不同的设备,并提供一致的用户体验。

开发者可以使用 CSS 媒体查询来实现响应式布局,并根据不同的屏幕尺寸调整元素的大小和位置。

2. 使用百分比布局:百分比布局是另一种适应不同屏幕尺寸的方法。

通过将元素的大小和位置设置为相对于父容器的百分比,可以实现元素的自适应。

这样,无论设备的屏幕尺寸如何变化,元素都可以按比例调整其大小和位置。

3. 使用资源限定符: Android 平台提供了一种资源限定符的机制,可以根据不同的屏幕尺寸和分辨率选择合适的资源文件。

开发者可以在项目的资源文件夹中创建不同的文件夹,将不同尺寸和分辨率的资源文件放在不同的文件夹中。

系统会根据当前设备的特性自动选择最合适的资源文件。

4. 进行代码适配:某些适配问题可能需要通过代码进行解决。

例如,在处理Android 设备的碎片化问题时,开发者可以根据设备的操作系统版本动态加载不同的代码模块。

还有一些特殊的界面元素或功能可以使用条件语句进行处理,以保证在不同设备上的兼容性。

5. 进行测试和优化:适配工作不仅包括开发阶段,还需要在发布前进行充分的测试。

开发者应该在不同的设备上测试应用程序,并注意各个界面元素的显示效果。

Android手机分辨率基础知识(DPI,DIP计算)

Android手机分辨率基础知识(DPI,DIP计算)

比如:计算WVGA(800*480)分辨率,3.7英寸的密度DPI图1Diagonal pixel 表示对角线的像素值(=),DPI=933/3.7=2523.手机屏幕的分类3.1根据手机屏幕密度(DPI)或屏幕尺寸大小分为以下3类,如图2所示图23. 2手机屏幕分类和像素密度的对应关系如表1所示:图3从以上的屏幕尺寸分布情况上看,其实手机只要考虑3-4.5寸之间密度为1和1.5的手机4 UI设计从开发角度讲,应用程序会根据3类A ndroid手机屏幕提供3套UI布局文件,但是相应界面图标也需要提供3套,如表2所示幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之间),layout-xlarge(7-10英寸之间)2)图片资源方面需要根据dpi值准备5套图片资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpiAndroid有个自动匹配机制去选择对应的布局和图片资源分享到:∙上一篇:分享摩托罗拉milestone手机升级到Android 2.2的过程∙下一篇:基于feng streaming server 搭建Android直播测试平台查看评论7楼pc0de 2011-12-16 17:11发表[回复]不错啊,转走了呵4楼qukeqi 2011-09-26 18:49发表[回复]o访问:30745次o积分:759分o排名:第8317名o原创:33篇o转载:0篇o译文:0篇o评论:147条文章存档展开阅读排行评论排行推荐文章最新评论m675650218: 楼主,能发一下你的代码吗,研究了好久,没弄出画面来,675650218@llpp2011: 楼主能发一个已实现了seekto 功能的mmfpeg源码给我吗?我想研究一下。

我邮箱llpp_llp...llpp2011: 我不知道怎么实现seekto 功能,将msec 转成Timestamp后,找不到seekto 中的...pc0de: 谢谢分享啊qqjjttt: 博主能发源码学习下吗?或者说多点思路出来。

4种自适应方案

4种自适应方案

一、细说layout_weight目前最为推荐的Android多屏幕自适应解决方案。

该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。

其值越小,则对应的layout_width或layout_height的优先级就越高,一般横向布局中,决定的是layout_width的优先级;纵向布局中,决定的是layout_height的优先级。

传统的layout_weight使用方法是将当前控件的layout_width和layout_height都设置成fill_parent,这样就可以把控件的显示比例完全交给layout_weight;这样使用的话,就出现了layout_weight越小,显示比例越大的情况。

不过对于2个控件还好,如果控件过多,且显示比例也不相同的时候,控制起来就比较麻烦了,毕竟反比不是那么好确定的。

于是就有了现在最为流行的0px设值法。

看似让人难以理解的layout_height=0px的写法,结合layout_weight,却可以使控件成正比例显示,轻松解决了当前Android开发最为头疼的碎片化问题之一。

先看下面的styles(style_layout.xml)<?xml version="1.0" encoding="utf-8"?><resources><!-- 全屏幕拉伸--><style name="layout_full"><item name="android:layout_width">fill_parent</item><item name="android:layout_height">fill_parent</item> </style><!-- 固定自身大小--><style name="layout_wrap"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item> </style><!-- 横向分布--><style name="layout_horizontal" parent="layout_full"> <item name="android:layout_width">0px</item> </style><!-- 纵向分布--><style name="layout_vertical" parent="layout_full"> <item name="android:layout_height">0px</item> </style></resources>可以看到,layout_width和layout_height两个属性被我封装成了4个style根据实际布局情况,选用当中的一种,不需要自己设置,看过我前一个ActivityGroup的Demo的同学应该非常熟悉了然后我的Demo的布局如下(weight_layout.xml)<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android "style="@style/layout_full"android:orientation="vertical"><LinearLayoutstyle="@style/layout_vertical"android:layout_weight="1"android:orientation="horizontal"><Viewstyle="@style/layout_horizontal" android:background="#aa0000"android:layout_weight="1"/><Viewstyle="@style/layout_horizontal" android:background="#00aa00"android:layout_weight="4"/><Viewstyle="@style/layout_horizontal" android:background="#0000aa"android:layout_weight="3"/><Viewstyle="@style/layout_horizontal" android:background="#aaaaaa"android:layout_weight="2"/></LinearLayout><LinearLayoutstyle="@style/layout_vertical"android:layout_weight="2"android:orientation="vertical"><Viewstyle="@style/layout_vertical"android:background="#ffffff"android:layout_weight="4"/><Viewstyle="@style/layout_vertical"android:background="#aa0000"android:layout_weight="3"/><Viewstyle="@style/layout_vertical"android:background="#00aa00"android:layout_weight="2"/><Viewstyle="@style/layout_vertical"android:background="#0000aa"android:layout_weight="1"/></LinearLayout></LinearLayout>整个界面布局看起来非常直观,只是嵌套的逻辑要自己理下。

一种android软件自适应不同屏幕密度的方法[发明专利]

一种android软件自适应不同屏幕密度的方法[发明专利]

专利名称:一种android软件自适应不同屏幕密度的方法专利类型:发明专利
发明人:贾澎
申请号:CN201110176278.0
申请日:20110627
公开号:CN102298495A
公开日:
20111228
专利内容由知识产权出版社提供
摘要:本发明公开了一种android软件自适应不同屏幕密度的方法,属于计算机软件技术领域。

本方法为:首先判断程序布局配置文件中控件高和宽是否能设置为变量;如果能,则将程序布局配置文件中控件高和宽分别设置为一变量,控件高和宽的变量值设置为填充所在容器全部空间时的值或能够容纳控件内部内容大小时的值;然后确定该控件的位置和大小;如果不能,则在程序的资源文件夹下设置若干布局文件夹,每一布局文件夹对应存储一屏幕密度值布局配置文件;然后根据当前屏幕密度值选择匹配的布局配置文件;最后,获取当前屏幕密度值,计算程序所需动态生成控件的大小,在当前屏幕上生成所需控件。

本发明可使Android程序自动适应不同的屏幕密度。

申请人:上海北大方正科技电脑系统有限公司
地址:200120 上海市浦东新区浦东南路360号上海国际大厦36楼
国籍:CN
代理机构:北京君尚知识产权代理事务所(普通合伙)
代理人:余长江
更多信息请下载全文后查看。

移动应用开发如何适配不同尺寸的屏幕

移动应用开发如何适配不同尺寸的屏幕

移动应用开发如何适配不同尺寸的屏幕如今,移动应用已经成为人们生活中不可或缺的一部分。

然而,随着各种不同尺寸的移动设备的出现,开发人员面临着一个重要的挑战:如何适配不同尺寸的屏幕,以确保用户在不同设备上都能获得良好的体验。

本文将探讨一些方法和技巧,帮助开发人员更好地适配不同尺寸的屏幕。

首先,了解不同屏幕尺寸的特点是至关重要的。

不同尺寸的屏幕意味着不同的显示区域和像素密度。

开发人员应该了解各种设备的屏幕分辨率,并根据每个设备的特点进行适配。

例如,对于较小的屏幕,可以考虑使用更小的字体和图标,以确保内容不会显得拥挤。

而对于较大的屏幕,可以充分利用空间,展示更多的信息和功能。

其次,使用响应式布局是一种常见的适配方法。

响应式布局可以根据设备的屏幕尺寸和方向自动调整页面布局和元素的大小。

通过使用CSS媒体查询,可以根据屏幕的宽度和高度来应用不同的样式。

这样,无论用户使用的是手机、平板还是电脑,应用都能自动适应屏幕,并提供最佳的用户体验。

另外,使用相对单位和弹性布局也是适配不同尺寸屏幕的有效方法。

相对单位,如百分比和em,可以根据屏幕尺寸进行自适应。

通过使用相对单位,开发人员可以将元素的大小和位置与屏幕尺寸相关联,从而实现适配。

弹性布局则是指根据屏幕尺寸调整元素的大小和位置。

通过使用弹性布局,开发人员可以灵活地调整元素的大小,以适应不同尺寸的屏幕。

此外,还可以使用多个布局文件来适配不同尺寸的屏幕。

Android开发中,可以为不同的屏幕尺寸创建不同的布局文件。

例如,可以创建一个适用于小屏幕手机的布局文件,一个适用于大屏幕平板的布局文件。

系统会根据设备的屏幕尺寸自动加载相应的布局文件,以确保应用在不同设备上的显示效果良好。

最后,进行测试和调试是确保应用适配不同尺寸屏幕的关键步骤。

开发人员应该在各种设备上进行全面的测试,以确保应用在不同尺寸的屏幕上都能正常运行。

同时,还应该注意检查应用在不同屏幕尺寸下的布局和元素是否正确显示,以及用户交互是否流畅。

手机屏幕变宽的方法

手机屏幕变宽的方法

手机屏幕变宽的方法
要改变手机屏幕的宽度,可以尝试以下几种方法:
1. 调整显示设置:在手机的设置菜单中,找到“显示”或“屏幕”选项,然后查找屏幕分辨率或显示比例的设置选项。

根据手机型号的不同,可能会有不同的选项可供选择,如16:9、18:9或全屏显示。

选择较宽的比例可以增加屏幕宽度。

2. 使用第三方应用程序:有些第三方应用程序可以帮助调整手机屏幕的宽度,如“Full!screen”,“Screen Shift”等。

这些应用程序可以通过拉伸屏幕分辨率的方式来增加屏幕宽度,但请注意使用第三方应用程序时要谨慎,确保从可信的来源下载和安装。

3. 使用屏幕模式:某些手机可能提供一种称为“屏幕模式”的功能,它可以通过增加屏幕显示的区域来改变屏幕的宽度。

该功能通常可以在手机的显示设置中找到。

请注意,改变手机屏幕的宽度可能会对图像和内容的显示效果产生影响,因此在调整屏幕宽度时应小心。

resizeableactivity maxapject -回复

resizeableactivity maxapject -回复

resizeableactivity maxapject -回复如何创建自适应大小的活动(ResizeableActivity)。

自适应大小的活动是一种在不同屏幕尺寸和设备方向下能够自动调整大小的Android活动。

这允许应用程序的界面在大屏幕上更好地展示,并且能够适应用户在执行其他任务时仅使用一部分屏幕空间的情况。

通过创建自适应大小的活动,您可以提供更好的用户体验,尤其是在平板电脑和大屏幕手机上。

那么,接下来我将一步一步地解释如何创建自适应大小的活动。

第一步:在AndroidManifest.xml文件中启用自适应大小的活动。

要启用自适应大小的活动,您需要在AndroidManifest.xml文件的活动声明中添加以下属性:<activityandroid:name=".YourActivity"android:resizeableActivity="true"></activity>通过将resizeableActivity属性设置为true,您告诉系统您的活动可以调整大小。

第二步:处理活动生命周期变化。

当活动的大小或设备方向发生变化时,您的应用程序需要适应新的屏幕尺寸。

为了实现这一点,您需要处理活动的生命周期方法,特别是onConfigurationChanged()和onCreate()方法。

在您的活动类中,您需要重写onConfigurationChanged()方法,以便在配置更改时触发相应的行为。

例如,您可以重新加载布局或重新配置界面元素。

Overridepublic void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig);在这里处理配置更改}然后,在onCreate()方法中,您可以检查屏幕的当前尺寸和方向,并根据需要调整您的界面。

Android系统如何实现UI的自适应

Android系统如何实现UI的自适应

Android系统如何实现UI的自适应做Android应用的人都知道,要一个apk适用多个不同的手机屏幕是很容易的,就是在项目的res文件夹下面有多套相关的资源文件。

程序运行的时候,Android系统会根据当前设备的信息去加载不同文件夹下的资源文件。

但是Android系统是怎么做到这一点的呢?上网上搜了一下,很少有这方便的介绍,只好自己研究下代码了。

下面是我研究代码得到的结果(正确性有待确认),在这里分享一下。

这里以ICS上在Activity的onCreate()方法里面调用setContentView(int resourceID)为例,介绍一下系统如何根据我们的id(yout.xxxx)找到合适的layout文件进行解析加载:如果你的res下面有三种不同的layout:layout, layout-sw480dp和layout-sw600dp,这里的sw<N>dp表示这个layout文件夹下面的布局文件只有在设备短边的最小宽带为N时才加载。

你的设备是800x480的分辨率,那么这个apk安装在你的设备上就会加载layout-sw480dp里面的布局文件。

下面是framework的java层调用链:Activity.setContentView(int resourceID) -> PhoneWindow.setContentView(int resourceID) -> LayoutInflater.inflate(int resource, ViewGroup root) -> LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot) -> Resources.getLayout(int id) -> Resources.loadXmlResourceParser(int id, String type) -> Resources.getValue(int id, TypedValue outValue, boolean resolveRefs) -> AssetManager.getResourceValue(int ident, int density, TypedValue outValue, boolean resolveRefs) -> AssetManager.loadResourceValue(int ident, short density, TypedValue outValue, boolean resolve)在上面的掉用链中:1. 最后加载的是哪个xml是由Resources.getValue(int id, TypedValue outValue, boolean resolveRefs)调用完成之后的outValue.string决定的,因为outValue.string的值就是你的资源文件的具体路径,如:1) xxx/values/xxx.xml2) xxx/layout-sw600dp/xxx.xml2. AssetManager.loadResourceValue()调的是frameworks/base/core/jni/android_util_AssetManager.cpp里面的native方法,如何获得正确的outValue值,在native方法俩面主要有以下几步:1) 调用frameworks/base/libs/utils/ResourceTypes.cpp 的ResTable::getResource(),遍历所有资源文件2) 在ResTable::getResource()里面调用ResTable::getEntry()来确定资源文件来自哪个entry,即layout,或者layout-sw<N>dp,由此可见,ResTable::getEntry()是我们这个问题的关键3) 在ResTable::getEntry()里面:a) 首先获取本设备的configurion信息,屏幕分辨率,屏幕大小,locale,横竖屏等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
如果在声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统使用尺寸为("normal")和密度为("medium)显示,
不过会出现一层黑色的背景。
3.3是否支持小屏幕
android:smallScreens=["true" | "false"]
如果在声明不支持的小屏幕,而当前屏幕尺寸是smaller的话,系统也使用尺寸为("normal")和密度为("medium)显示
2)如果没法找到相应的尺寸,而找到密度,则认为该图片尺寸为 "medium",利用缩放显示这个图片。
3)如果都无法匹配,则使用默认图片进行缩放显示。默认图片默认标配 "medium" (160)。
4.2自动缩放的像素尺寸和坐标(密度兼容)
1)如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放图片尺寸和这个图片的坐标。
drawalbe-ldpi:低分辨率的图片,如QVGA (240x320)
drawable-mdpi:中等分辨率的图片,如HVGA (320x480)
drawable-hdpi:高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
drawable-xhdpi:至少960dp x 720dp
1.3屏幕密度
每英寸像素数
手机可以有相同的分辨率,但屏幕尺寸可以不相同,
Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=252
android将实际的屏幕密度分为四个通用尺寸(low,medium,high,and extra high)
一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi
如果应用程序能在小屏幕上正确缩放(最低是small尺寸或最小宽度320dp),那就不需要用到本属性。否则,就应该为最小屏幕宽度标识符设置本属性
来匹配应用程序所需的最小尺寸。
4、Android提供3种方式处理屏幕自适应
4.1预缩放的资源(基于尺寸和密度去寻找图片)
1)如果找到相应的尺寸和密度,则利用这些图片进行无缩放显示。
6、在代码中获取屏幕像素、屏幕密度
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
从以上的屏幕尺寸分布情况上看,其实手机只要考虑3-4.5寸之间密度为1和1.5的手机
2、android多屏幕支持机制
Android的支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。
Android平台中支持一系列你所提供的指定大小(size-specific),指定密度(density-specific)的合适资源。
7、 一般多分辨率处理方法及其缺点
7.1 图片缩放
基于当前屏幕的精度,平台自动加载任何未经缩放的限定尺寸和精度的图片。如果图片不匹配,平台会加载默认资源并且在放大或者缩小之后可以满足当前界面的显示要求。例如,当前为高精度屏幕,平台会加载高精度资源(如HelloAndroid中drawable-hdpi 中的位图资源),如果没有,平台会将中精度资源缩放至高精度,导致图片显示不清晰。
2)为不同屏幕密度的手机,提供不同的位图资源,可以使得界面清晰无缩放。
对应bitmap 资源来说,自动的缩放有时会造成放大缩小后的图像变得模糊不清,这是就需要应用为不同屏幕密度配置提供不同的资源:为高密度的屏幕提供高清晰度的图像等。
3)不要使用AbsoluteLayout
4)像素单位都使用DIP,文本单位使用SP
Android有个自动匹配机制去选择对应的布局和图片资源
1)界面布局方面
根据物理尺寸的大小准备5套布局:
layout(放一些通用布局xml文件,比如界面顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),
layout-small(屏幕尺寸小于3英寸左右的布局),
layout-normal(屏幕ge(4英寸-7英寸之间),
layout-xlarge(7-10英寸之间)
2)图片资源方面
需要根据dpi值准备5套图片资源:
drawable:主要放置xml配置文件或者对分辨率要求较低的图片
7.3 兼容更大尺寸的屏幕
当前屏幕超过程序所支持屏幕的上限时,定义supportsscreens元素,这样超出显示的基准线时,平台在此显示黑色的背景图。例如,WVGA 中精度屏幕上,如程序不支持这样的大屏幕,系统会谎称是一个320×480 的,多余的显示区域会被填充成黑色。
7.4 采用OpenGL 动态绘制图片
如果设置android:anyDensity="false",Android系统会将240 x 320(低密度)转换为 320×480(中密度),这样的话,应用就会在小密度手机上加载mdpi文件中的资源。
3.2是否支持大屏幕
android:largeScreens=["true" | "false"]
当你定义应用的布局的UI时应该使用dp单位,确保UI在不同的屏幕上正确显示。
手机屏幕分类和像素密度的对应关系如表1所示
手机尺寸分布情况(/resources/dashboard/screens.html)如图所示,
目前主要是以分辨率为800*480和854*480的手机用户居多
对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚
1.4密度无关的像素(Density-independent pixel——dip)
dip是一种虚拟的像素单位
dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)
2.)对于你在声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统同样使用尺寸为("normal")和密度为("medium)显示,
不过会出现一层黑色的背景。
5、Android系统自动适配技巧
Android系统采用下面两种方法来实现应用的自动适配:
1)布局文件中定义长度的时候,最好使用wrap_content,fill_parent, 或者dp 进行描述,这样可以保证在屏幕上面展示的时候有合适的大小
7.2 自动定义像素尺寸和位置
如果程序不支持多种精度屏幕,平台会自动定义像素绝对位置和尺寸值等,这样就能保证元素能和精度160 的屏幕上一样能显示出同样尺寸的效果。例如,要让WVGA 高精度屏幕和传统的HVGA 屏幕一样显示同样尺寸的图片,当程序不支持时,系统会对程序慌称屏幕分辨率为320×480,在(10,10)到(100,100)的区域内绘制图形完成之后,系统会将图形放大到(15,15)到(150,150)的屏幕显示区域。
< > 猎头职位: 上海: Junior Product Manager相关文章:
[问题解决]WebView显示的网页在大分辨率屏下被放大 - 密度惹的祸
Android中尺寸单位杂谈
Android屏幕大小和密度对照表,以及px、dip、sp等像素单位的解释
推荐群组: Android
指定大小(size-specific)的合适资源是指small, normal, large, and xlarge。
指定密度(density-specific)的合适资源,是指ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high).
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
更多相关推荐 android 自适应 多屏幕支持 1、屏幕相关概念
1.1分辨率
是指屏幕上有横竖各有多少个像素
1.2屏幕尺寸
指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸
android将屏幕大小分为四个级别(small,normal,large,and extra large)。
Android 底层提供了OpenGL 的接口和方法,可以动态绘制图片,但是这种方式对不熟悉计算机图形学的开发者来讲是一个很大的挑战。一般开发游戏,采用OpenGL 方式。
7.5 多个apk 文件
Symbian 和传统的J2ME 就是采用这种方式,为一款应用提供多个分辨率版本,用户根据自己的需求下载安装相应的可执行文件。针对每一种屏幕单独开发应用程序不失为一种好方法,但是目前Google Market 对一个应用程序多个分辨率版本的支持还不完善,开发者还是需要尽可能使用一个apk 文件适应多个分辨率。
相关文档
最新文档