Android中根据设备类型利用代码来动态控制某一界面的横竖屏显示

背景

开发的Android应用程序,原来是在手机上进行测试的,但是其实是需要给平板安装使用的。在手机上的时候就竖屏显示效果好,而平板上横屏显示效果好。于是这里就需要根据设备的类型来进行判断是横屏显示还是竖屏显示。(其实是用自定义view绘制的一张地图了拉!)


思路

下面讲讲实现的思路。
首先我们需要判断当前设备是手机还是平板;确定设备类型后,根据对应的类型设备来进行对应的横竖屏显示即可。


代码实现

实现如下:

package com.example.pc_2.carmapproject.utils;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.util.DisplayMetrics;
import android.view.WindowManager;

import com.example.pc_2.carmapproject.activity.MainActivity;

/**
 * Created by zouqi on 2018/2/9.
 */

public class ScreenUtil {

    /**
     * 根据设备类型(手机或平板)来判断地图主界面的横竖屏显示方式
     * @param activity
     */
    public static void selectScreentDirection(Activity activity){
        if(!isTabletDevice(activity)){
            ToastUtil.showToast(activity, "当前设备是手机设备");
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 设置竖屏显示
        }else {
            ToastUtil.showToast(activity, "当前设备是平板设备");
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);// 设置横屏显示
        }
    }

    /**
     * 判断当前设备是否是平板
     * @param context
     * @return true 平板、false 手机
     */
    private static boolean isTabletDevice(Context context) {
        return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
    }

}

我这里将选择横竖屏显示的方式封装在工具类中,大家只需要在需要的activity(某一界面)的onCreate方法中进行调用即可,如下:

ScreenUtil.selectScreentDirection(MainActivity.this);// 根据设备类型来确定横竖屏显示方式

这里写图片描述

===========================================================================

A little bit of progress every day!Come on!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值