安卓实用方法总结(更新中……)

来源:互联网 发布:怎么查看图片 html源码 编辑:程序博客网 时间:2024/05/22 15:25
    在开发中,往往会遇到很多需要将一个功能封装成一个方法。再此,我从工作中总结出来了一些,以方便以后在开发中能够快速的运用。这些是综合了很多人的经验,也不能算是原创了吧,我也忘记了是从哪儿借鉴的了,在此就不列出了。如有雷同,纯属巧合。当然,如果有不对的地方,也请大家多多指教。        

一、获取应用版本

public static String getVersionName(Context context) {            String version = "";            try {                // 获取PackageManager的实例                PackageManager packageManager = context.getPackageManager();                // getPackageName()获取的是你当前类的包名,0代表是获取版本信息                PackageInfo packInfo = packageManager.getPackageInfo(                        context.getApplicationContext().getPackageName(), 0);                version = packInfo.versionName;            } catch (Exception e) {            }            return version;        }

二、实现沉浸式状态栏

java代码片段:

private void setSystemBar() {        if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {            // 透明状态栏            getWindow().addFlags(                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);            // 透明导航栏            getWindow().addFlags(                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);        }    }

xml代码片段:在当前activity的布局文件中的根布局中添加下面三句代码,其中背景颜色就是你想要设置的颜色。

    android:clipToPadding="true"    android:fitsSystemWindows="true"    android:background="#ef777d"

三、Android中dp和px之间的转换

java代码片段:

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

四、获取控件宽高

java代码片段:

ViewTreeObserver vto = view.getViewTreeObserver();vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {    @Override    public void onGlobalLayout() {                  view.getViewTreeObserver().removeGlobalOnLayoutListener(this);    int height = view.getHeight();    int width = view.getWidth();    }});

五、判断当前网络是否可用

/*** 判断当前网络是否可用* @return*/public static boolean isNetworkAvailable() {// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);    if (manager == null) {        return false;    } else {    // 获取对象    NetworkInfo[] networkInfo=manager.getAllNetworkInfo();    if (networkInfo != null && networkInfo.length > 0) {    for (int i = 0; i < networkInfo.length; i++) {    // 判断当前网络状态是否为连接状态    if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) {        return true;            }        }    }}return false;}
0 0