android分辨率与尺寸适配,UI切图方法

1.android怎样做适配
第一图片资源的适配
一般图片资源文件下包含下列五个图片资源文件夹drawable-xxhdpi,drawable-xhdpi,drawable-hdpi,drawable-mdpi,drawable-ldpi
drawable-xxhdpi,drawable-xhdpi,一般作为pad的图片资源,但也有例外小米4手机的分辨率较高应该用的就是drawable-xhdpi的图片资源
第二到第四个文件夹一般作为手机图片的适配
对应的像素密度依次为density=120ppi,160ppi,240ppi,320ppi,480ppi(ppi即为每英寸包含的像素点数)
第二布局单位的适配
Google推荐使用的布局单位是dp,字体大小推荐使用的sp,和web不一样,Google不推荐使用px作为像素单位原因很简单(同样4英寸的手机,480*320800*480分辨率,在同样大小的屏幕上显示,物理高度会相差两倍),dp单位很好的解决了这个问题,dp=(density/160)*px
(像我们使用的华为手机,三防的手机虽然分辨率不一样包括市场上主流的手机854*480,960*540,800*480)换算成dp之后都是480dp*320dp因为他们的像素密度都是160ppi,所以做一套图,一个布局就可以适配所有的这种类型的手机
第三字体的适配
字体的单位Google推荐使用spsp几乎等同于dp他们唯一的不同点就是,android系统里面有个字体大小,这个选项是可以改变sppx之间的换算单位的,这也是我们侯马的程序为什么会受系统影响的原因所在,可以把系统提供的这个功能通过dp单位屏蔽掉
第四不同屏幕尺寸设备的适配
市场上的主流尺寸有small(2-3英寸)normal4英寸左右)large5-7英寸)xlarge(7英寸以上)做好后三种的适配就应该能包含市场上99%的手机了,这样就要做三种布局了,很简单的原因(我们的pad程序在10.1英寸的三星pad上显示良好,而在7寸的屏幕上几乎无法使用就是因为用的是一套布局)
 
综上所述,手机程序一般切三套图,加一个布局就能适应主流手机
Pad适配比较繁琐至少要切两套图,加上两个布局才能适应主流pad
像我们的pad程序分辨率不变,屏幕尺寸随时会变,用px像素单位写死是最容易的完全能够适应不同尺寸的变化。
 
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用蓝湖切图适配不同机型的一些代码实现方式: 1. 使用不同分辨率的资源文件 在res目录下新建drawable、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等子目录,分别存放不同分辨率的图片资源文件。在布局文件或代码中引用图片时,系统会自动选择合适分辨率的资源文件进行加载。示例代码如下: ``` <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_image" /> ``` 2. 使用dp作为尺寸单位 在布局文件中使用dp作为尺寸单位,可以保证在不同分辨率的设备上显示效果基本一致。示例代码如下: ``` <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16dp" android:text="Hello World!" /> ``` 3. 使用代码动态设置布局参数 在代码中可以使用代码动态设置布局参数,根据不同机型的屏幕尺寸分辨率进行适配。示例代码如下: ``` // 获取屏幕宽度和高度 DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int screenWidth = displayMetrics.widthPixels; int screenHeight = displayMetrics.heightPixels; // 动态设置View的宽度和高度 View view = findViewById(R.id.my_view); ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); layoutParams.width = screenWidth / 2; layoutParams.height = screenHeight / 3; view.setLayoutParams(layoutParams); ``` 4. 使用代码动态加载不同分辨率的图片 在代码中可以使用代码动态加载不同分辨率的图片,根据不同机型的屏幕分辨率进行适配。示例代码如下: ``` // 获取屏幕密度 float density = getResources().getDisplayMetrics().density; // 动态加载不同分辨率的图片 if (density <= 1.0f) { imageView.setImageResource(R.drawable.my_image_mdpi); } else if (density <= 1.5f) { imageView.setImageResource(R.drawable.my_image_hdpi); } else if (density <= 2.0f) { imageView.setImageResource(R.drawable.my_image_xhdpi); } else { imageView.setImageResource(R.drawable.my_image_xxhdpi); } ``` 以上是一些常用的适配代码实现方式,根据实际需求和机型适配情况,可以进行相应的调整和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值