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