安卓开发常用工具类整理,楼主亲测可用贴(持续更新),如有补充欢迎跟帖

Posted Gradle官方文件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓开发常用工具类整理,楼主亲测可用贴(持续更新),如有补充欢迎跟帖相关的知识,希望对你有一定的参考价值。

为了提高开发效率,把常用的方法整理出来,供大家和自己参考,欢迎大家把常用的工具类及方法放在评论栏里,我会及时补充进来。

  • 1.根据手机的分辨率从 dp 的单位 转成为 px(像素)
  • 2.根据手机的分辨率从 px(像素) 的单位 转成为 dp
  • 3.获取屏幕宽度
  • 4.获取application中指定的meta-data
  • 5.map集合根据key的首字母进行排序
  • 6.获取当前本地apk的版本
  • 7.获取版本号名称

1.根据手机的分辨率从 dp 的单位 转成为 px(像素)

    /** 
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 
     */  
    public static int dip2px(Context context, float dpValue)   
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (dpValue * scale + 0.5f);  
     

2.根据手机的分辨率从 px(像素) 的单位 转成为 dp

    /** 
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
     */  
    public static int px2dip(Context context, float pxValue)   
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (pxValue / scale + 0.5f);  
     

3.获取屏幕宽度

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();

4.获取application中指定的meta-data

	/**
	 * 获取application中指定的meta-data
	 * 
	 * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
	 */
	public static String getAppMetaData(Context ctx, String key) 
		if (ctx == null || TextUtils.isEmpty(key)) 
			return null;
		
		String resultData = null;
		try 
			PackageManager packageManager = ctx.getPackageManager();
			if (packageManager != null) 
				ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(),
						PackageManager.GET_META_DATA);
				if (applicationInfo != null) 
					if (applicationInfo.metaData != null) 
						resultData = applicationInfo.metaData.getString(key);
					
				
			
		 catch (PackageManager.NameNotFoundException e) 
			e.printStackTrace();
		
		return resultData;
	

5.map集合根据key的首字母进行排序

    private Map<String,String> compareMap(Map<String, String> map)
        List<Map.Entry<String, String>> infoIds = new ArrayList<>(map.entrySet());

        //排序方法
        Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>() 
            public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) 
                return o1.getKey().trim().compareTo(o2.getKey().trim());
            
        );
        //排序后
        Map<String,String> newMap = new HashMap<>();
        for (Map.Entry<String, String> m : infoIds)
            newMap.put(m.getKey(),m.getValue());
            Log.i("123", "map>>>: "+m.getKey()+":"+ m.getValue());
        
        return newMap;
    

6.获取当前本地apk的版本

 
    /**
     * 获取当前本地apk的版本
     *
     * @param mContext
     * @return
     */
    public static int getVersionCode(Context mContext) 
        int versionCode = 0;
        try 
            //获取软件版本号,对应androidManifest.xml下android:versionCode
            versionCode = mContext.getPackageManager().
                    getPackageInfo(mContext.getPackageName(), 0).versionCode;
         catch (PackageManager.NameNotFoundException e) 
            e.printStackTrace();
        
        return versionCode;
    

7.获取版本号名称


    /**
     * 获取版本号名称
     *
     * @param context 上下文
     * @return
     */
    public static String getVerName(Context context) 
        String verName = "";
        try 
            verName = context.getPackageManager().
                    getPackageInfo(context.getPackageName(), 0).versionName;
         catch (PackageManager.NameNotFoundException e) 
            e.printStackTrace();
        
        return verName;
    

以上是关于安卓开发常用工具类整理,楼主亲测可用贴(持续更新),如有补充欢迎跟帖的主要内容,如果未能解决你的问题,请参考以下文章

IDEA2019.1.2注册码,亲测可用,持续更新

整理Java相关的工具类,持续更新中,建议收藏

FIle类常用工具方法整理(持续更新)

安卓虚拟定位软件Fake Location重大更新

五分钟带你玩转k8s全网最新最全搭建master方式,楼主亲测可用

Excel工具类[亲测可用]