Android支持各种硬件设备及各个版本

我们开发的程序将会在各种设备上运行,这些设备会有不同的密度和不同的屏幕尺寸,可以从以下几个方面优化:

一、支持多屏幕多像素

1、以dp为计量单位。1dp相当于分辨率为160dpi(点每英寸)的屏幕上的一个点。dp转化为屏幕像素点: px=dp*dpi/160;这样在不同屏幕尺寸下的界面效果不会相差很大。

2、使用Fragment

3、避免使用觉得的宽度和高度

4、提供替代资源

1)提供替代Layout:横竖屏、每种屏幕尺寸设计不同的Layout,如 layout-sw600dp-port文件夹下的布局文件就是7英寸纵向的 时候会加载的布局文件。

2)提供替代位图:为5种屏幕密度(ldpi、mdpi、hdpi、xhdpi、xxhdpi)都提供位图,防止图片失真。也可以使用矢量图。


二、支持多版本系统

在AndroidManifest.xml中有如下代码:

 <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="19" />


其中,minSdkVersion表示程序运行需要的最低版本,如果设备低于此版本则无法运行;targetSdkVersion表示设计、编译和测试时所用的API级别,通常会将设为targetSdkVersion最新的级别。

常量类Build中定义了每个版本的唯一编码,可以根据这个编码来实现不同版本上的不同展示效果。

如,在API大于等于11的情况下使用actionBar,而低于11的时候使用菜单。

		if(Build.VERSION.SDK_INT>=11){
			ActionBar ab=getActionBar();
			//....
		}else{
			textView.setText("Press Menu Button to display menu");
		}

可以使用Android Support Library支持低版本系统。

我们在项目中经常会导入一个库:android.support.v4.app.*;这里的v4是表示API的最低需要级别为4,v7就表示最低需要级别为7。

我们经常使用到的android.support.v4.app.Fragment就来自于这个支持库,如果使用android.app.Fragment的话,则最少要API>=11,这样10的就无法使用Fragment。而使用android.support.v4.app.Fragment就不会有这个问题。


三、通过锚定适应屏幕方向

1、锚定控件,即以屏幕四边的相对位置来定义控件的位置。这样,控件不会因为屏幕尺寸变化而消失。在布局文件中,推荐使用RelativeLayout,它比LinearLayout更容易实现各种效果,比如,很多效果LinearLayout要嵌套多层才能实现,而层数越多,在界面绘制的时候消耗的资源也越多。

2、定义替代Layout




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值