Android 判断是否为pad

一、背景

当需要在pad和手机上做不同的适配的时候就需要判断一个设备是否为pad,那么如何判断一个设备是pad就成了需要解决的问题。

二、解决方案
  • 根据屏幕最小宽度判断是否为pad,例如把最小宽度大于550dp的设备标示为pad小于550dp的设备标示为手机。
  • 根据最小宽度选择出来的设备有时是手机(例如小米max系列)这时就需要从打电话维度来判断是否为pad。
三、代码实现

1、首先创建一个一下三个维度的资源文件夹,在小于550dp的dimens.xml中device_pad_value设置为0,在大于等于550dp的dimens.xml中device_pad_value设置为1,这样就可以根据Android系统的资源适配方案区别出来最小宽度大于550dp的设备了。
在这里插入图片描述

示例:

//480dp
<resources>
    <!--用于判断是否是pad-->
    <dimen name="device_pad_value">0px</dimen>
</resources>
//550dp
<resources>
    <!--用于判断是否是pad-->
    <dimen name="device_pad_value">1px</dimen>
</resources>
//720dp
<resources>
    <!--用于判断是否是pad-->
    <dimen name="device_pad_value">1px</dimen>
</resources>

2、然后根据是否可以打电话来过滤大于550dp的手机

/**
 * 判断当前设备是手机还是平板
 *
 * @return 平板返回 True,手机返回 False
 */
fun isPad(context: Context): Boolean {
    //根据屏幕最小宽度判断是否为pad,手机的padValue为0
    val padValue = context.resources.getDimensionPixelSize(R.dimen.device_pad_value)
    if (padValue <= 0) {
        //根据屏幕最小宽度判断出是手机后再根据是否可以打电话过滤pad
        val telephony = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
        return telephony.phoneType == TelephonyManager.PHONE_TYPE_NONE
    }
    return true
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网小熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值