Android常用工具方法

Android常用工具方法

本文意在整理安卓开发中常用的方法,处理一些需要特殊处理的地方

获取屏幕尺寸

屏幕尺寸DisplayMetrics 其中包含了很多信息

DisplayMetrics {
	//宽度
	int widthPixels
	//高度
	int heightPixels
	//密度
	float density
	//密度dpi
	int densityDpi
	//缩放密度
	float scaledDensity
	//宽度dpi
	int xdpi
	//高度dpi
	int ydpi
}
public static DisplayMetrics (Context context) {
	return context.getResources().getDisplayMetrics();
}

获取某个属性资源文件id

/**
 * @param sourceName 资源定义的名称
 * @param sourceType 资源定义的类型 dimen,color,int,String,drawable...
 * @param packageBelong 资源所在的包 一般"android"表示android 系统的,另外就是应用的 当前应用的包名
 */
public static int getIdentifier(Context context,String sourceName,String sourceType,
	String packageBelong) {
	return context.getResources().getIdentifier(sourceName, sourceType, packageBelong);
}

获取状态栏高度

public static int getStatusBarHeight(Context context) {
	return context.getResources().getDimensionPixelSize(getIdentifier(context,
                        "status_bar_height", "dimen", "android"));
}

获取底部导航栏高度

public static int getNavigationBarHeight(Context context) {
	return context.getResources().getDimensionPixelSize(getIdentifier(context,
                        "navigation_bar_height", "dimen", "android"));
}

判断是否有导航栏

/**
 * 通过获取android系统配置,确保准确获取是否有导航栏
 * @param context
 * @return
 */
public boolean checkDeviceHasNavigationBar(Context context) {
    boolean hasNavigationBar = false;
    Resources rs = context.getResources();
    int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
    if (id > 0) {
        hasNavigationBar = rs.getBoolean(id);
    }
    try {
        Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
        Method m = systemPropertiesClass.getMethod("get", String.class);
        String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
        if ("1".equals(navBarOverride)) {
            hasNavigationBar = false;
        } else if ("0".equals(navBarOverride)) {
            hasNavigationBar = true;
        }
    } catch (Exception e) {
    }
    return hasNavigationBar;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的Android Studio工具类有以下几个: 1. AndroidUniqueID: 这是一个用于获取Android设备唯一标识符的工具类,可以通过GitHub链接(https://github.com/appdevzhang/AndroidUniqueID)找到详细使用方法。 2. Lazy android: 这是一个方便快捷的Android工具类,通过GitHub链接(https://github.com/l123456789jy/Lazy android)可以了解它的具体功能和用法。 3. Utils-Everywhere: 这是一个Android各种工具类的集合,通过GitHub链接(https://github.com/SenhLinsh/Utils-Everywhere)可以查看所有可用的工具类和使用方法。 这些工具类都是为了方便开发者在Android Studio中进行开发而设计的,可以提高开发效率和代码质量。同时,还可以使用Lint工具来进行静态代码检查,找出代码结构和质量问题,并提供解决方案。通过Android Studio自带的Lint功能,可以进行一些常见的代码优化,去除多余的资源等。 可以通过这个(https://blog.csdn.net/ouyang_peng/article/details/80374867)链接来了解更多关于Lint工具的配置和使用方法。 除了Lint工具,还有其他的静态代码检查框架,如FindBugs、PMD和Checkstyle等,它们可以检查Java源文件或class文件的代码质量和代码风格。但在Android开发中,我们通常会选择使用Lint框架,因为它提供了强大的功能、扩展性和与Android Studio、Android Gradle插件的原生支持。此外,Lint框架还提供了许多有用的Android相关检查规则,而且有Google官方的支持,在Android开发工具的升级中也会得到完善。 你可以通过这个链接(https://blog.csdn.net/MeituanTech/article/details/79922364)了解更多关于Lint框架的使用和优势。 总结来说,Android Studio常用的工具类包括AndroidUniqueID、Lazy android和Utils-Everywhere等,而Lint工具则可以帮助我们进行静态代码检查和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值