文档章节

android 基本工具类方法及%s妙用

JewelKing
 JewelKing
发布于 2015/09/07 13:55
字数 454
阅读 1816
收藏 5
1、获取手机分辨率
public static String getDisplayMetrix(Context context) {
    if (Constant.Screen.SCREEN_WIDTH == 0 || Constant.Screen.SCREEN_HEIGHT == 0) {
        if (context != null) {
            int width = 0;
            int height = 0;
            SharedPreferences DiaplayMetrixInfo = context.getSharedPreferences("display_metrix_info", 0);
            if (context instanceof Activity) {
                WindowManager windowManager = ((Activity) context).getWindowManager();
                Display display = windowManager.getDefaultDisplay();
                DisplayMetrics dm = new DisplayMetrics();
                display.getMetrics(dm);
                width = dm.widthPixels;
                height = dm.heightPixels;

                Editor editor = DiaplayMetrixInfo.edit();
                editor.putInt("width", width);
                editor.putInt("height", height);
                editor.commit();
            } else {
                width = DiaplayMetrixInfo.getInt("width", 0);
                height = DiaplayMetrixInfo.getInt("height", 0);
            }

            Constant.Screen.SCREEN_WIDTH = width;
            Constant.Screen.SCREEN_HEIGHT = height;
        }
    }
    return Constant.Screen.SCREEN_WIDTH + "×" + Constant.Screen.SCREEN_HEIGHT;
}
2、关闭系统的软键盘
public static void dismissSoftKeyboard(Activity activity) {
    View view = activity.getWindow().peekDecorView();
    if (view != null) {
        InputMethodManager inputmanger = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}
3、dp—px相互转换
public static int dp2px(Context context, float dpValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
}

public static int px2dp(Context context, float pxValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
}
4、获取设备唯一编码
/**
 * 根据mac地址+deviceid
 * 获取设备唯一编码
 *
 * @return
 */
public static String getDeviceKey() {
    if ("".equals(DEVICEKEY)) {
        String macAddress = "";
        WifiManager wifiMgr = (WifiManager) MainApplication.getIns().getSystemService(MainApplication.WIFI_SERVICE);
        WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());
        if (null != info) {
            macAddress = info.getMacAddress();
        }
        TelephonyManager telephonyManager =
                (TelephonyManager) MainApplication.getIns().getSystemService(MainApplication.TELEPHONY_SERVICE);
        String deviceId = telephonyManager.getDeviceId();
        DEVICEKEY = MD5Util.toMD5("android" + Constant.APPKEY + Constant.APPPWD + macAddress + deviceId);
    }
    return DEVICEKEY;
}
5、获取手机及SIM卡相关信息
public static Map<String, String> getPhoneInfo(Context context) {
    Map<String, String> map = new HashMap<String, String>();
    TelephonyManager tm = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    String imei = tm.getDeviceId();
    String imsi = tm.getSubscriberId();
    String phoneMode = android.os.Build.MODEL;
    String phoneSDk = android.os.Build.VERSION.RELEASE;
    map.put("imei", imei);
    map.put("imsi", imsi);
    map.put("phoneMode", phoneMode + "##" + phoneSDk);
    map.put("model", phoneMode);
    map.put("sdk", phoneSDk);
    return map;
}
6、安装apk
public void install(Context context, String fileName) {
    if (TextUtils.isEmpty(fileName) || context == null) {
        return;
    }
    try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
        context.startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void install(Context context, File file) {
    try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
        context.startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
7、Strings.xml中“%s”的妙用
在strings.xml中添加字符串
<string name="text">Hello,%s!</string>
在代码中
textView.setText(String.format(getResources().getString(R.string.text),"Android"));
输出结果:Hello,Android!


© 著作权归作者所有

JewelKing
粉丝 2
博文 15
码字总数 2498
作品 0
昆山
程序员
私信 提问
android四大组件之intent

什么是Intent Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内...

骑牛找牛
2014/03/04
105
0
Android中监听锁屏变化和防止锁屏

Android app中可能存在某些可视化耗时操作,需要防止锁屏。 一、监听锁屏 添加权限 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 首先来看如何监听锁屏,使用Bro...

IamOkay
2014/11/22
322
0
android setTag (int key, Object tag)使用

setTag是android的view类中很有用的一个方法,可以用它来给空间附加一些信息,在很多场合下都得到妙用。 setTag(Object tag)方法比较简单,这里主要谈一谈带两个参数的setTag方法。 官方的a...

Koon.LY
2012/05/28
3.6K
2
Android单元测试初探——Instrumentation

学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所...

鉴客
2011/09/05
85.6K
9
Android基于DataBinding的一个基础框架

开篇废话 因公司需求,开发了一个基于DataBinding的基础框架,以后公司可能写项目都要按这个框架来写,规范一些,有利于互相读代码。先附上github链接吧——CFramework。 如果不知道什么是D...

一个有故事的程序员
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部