声明

  欢迎转载,但请保留文章原始出处:) 
    博客园:http://www.cnblogs.com

    农民伯伯: http://over140.cnblogs.com

正文

1、 精确获取屏幕尺寸(例如:3.5、4.0、5.0寸屏幕)

public static double getScreenPhysicalSize(Activity ctx) {
        DisplayMetrics dm = new DisplayMetrics();
        ctx.getWindowManager().getDefaultDisplay().getMetrics(dm);
        double diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) + Math.pow(dm.heightPixels, 2));
        return diagonalPixels / (160 * dm.density);
    }

一般是7寸以上是平板

2、 判断是否是平板(官方用法)

public static boolean isTablet(Context context) {
        return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
    }

3、 文字根据状态更改颜色 android:textColor

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#53c1bd" android:state_selected="true"/>
    <item android:color="#53c1bd" android:state_focused="true"/>
    <item android:color="#53c1bd" android:state_pressed="true"/>
    <item android:color="#777777"/>
</selector>

放在res/color/目录下

4、背景色根据状态更改颜色 android:backgroup

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true"><shape>

<gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
        </shape></item>
    <item android:state_focused="true"><shape>
            <gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
        </shape></item>
    <item android:state_pressed="true"><shape>
            <gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
        </shape></item>
    <item><shape>
            <gradient android:angle="0" android:centerColor="#00ff00" android:endColor="00ff00" android:startColor="00ff00" />
        </shape></item>

</selector>

如果直接给背景色color会报错。

5、 启动APK的默认Activity

public static void startApkActivity(final Context ctx, String packageName) {
        PackageManager pm = ctx.getPackageManager();
        PackageInfo pi;
        try {
            pi = pm.getPackageInfo(packageName, 0);
            Intent intent = new Intent(Intent.ACTION_MAIN, null);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            intent.setPackage(pi.packageName);

List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);

ResolveInfo ri = apps.iterator().next();
            if (ri != null) {
                String className = ri.activityInfo.name;
                intent.setComponent(new ComponentName(packageName, className));
                ctx.startActivity(intent);
            }
        } catch (NameNotFoundException e) {
            Log.e("startActivity", e);
        }
    }

7、计算字宽

public static float GetTextWidth(String text, float Size) {
        TextPaint FontPaint = new TextPaint();
        FontPaint.setTextSize(Size);
        return FontPaint.measureText(text);
    }

注意如果设置了textStyle,还需要进一步设置TextPaint。

Android实用代码1 - 转自农民伯伯相关推荐

  1. Android实用代码七段(五)

    1.展开.收起状态栏 public static final void collapseStatusBar(Context ctx) {         Object sbservice = ctx. ...

  2. Android实用代码(不定期更新)

    Android实用代码七段(一) 一抹火焰 整理(不定期更新) 前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明: 欢迎转载,但请保留文章原始出处:)  博客园 ...

  3. android实用代码

    Android实用代码七段(一) 前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnbl ...

  4. 实用android 代码,Android 实用代码七段(一)

    前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http ...

  5. android 实用代码

    android 实用代码 1. 精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ctx) ...

  6. Android实用代码3-转自农民伯伯

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文  一.获取已经安装APK的路径 ...

  7. Android实用代码七段(三)

    前言 终于又攒了一篇出来,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http: ...

  8. Android实用代码七段(二)

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.获取应用程序下所有Acti ...

  9. Android实用代码大全

    1. 精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public  static  double getScreenPhysicalSize(Activity ctx) {          ...

最新文章

  1. Python str类型方法实例概述及常用方法——04
  2. OVS vswitchd启动(三十九)
  3. asp.net的几个错误
  4. BSP hidden form in generated html source code
  5. oracle中的常用函数
  6. 打印速度快点的打印机_SLM推出了功能强大的新型金属3D打印机,速度快20倍
  7. springsecurity oauth2_跟OAuth2杠上了,老师,我要学全套的!
  8. Ubuntu 之旅(三)安装通讯工具
  9. SHL笔试全攻略(转)
  10. python 马赛克拼图_用几十万张图片来拼图!Open CV牛逼不是没有道理的!马赛克拼图...
  11. USB 3.0规范中译本 第7章 链路层
  12. linux 好书推荐
  13. 126邮箱stmp服务器,免费邮箱
  14. 小四年级下册计算机教学计划,小学四年级下第二学期信息技术教学计划.doc
  15. UnRaid硬件直通的n种正确姿势
  16. paper—基于 GCN 的安卓恶意软件检测模型
  17. win10 64位注册TeeChart8.ocx
  18. 计算机应用基础教程段永平,段永平
  19. mysql read rnd next_mysql Handler_read_rnd_next value 值超大(10G+)的处理
  20. 海云安:利益博弈,APP安全漏洞背后的攻防交锋

热门文章

  1. 牛客用友201803
  2. Odoo 16 企业版手册 - 库存管理之库位管理
  3. 自学Java-day01(初学Java)
  4. zzulioj1123
  5. PDF加密文件解密方法(解除复制打印限制)——转帖
  6. 利用程序计算2+22+222+2222+22222的和
  7. 逆战———微信小程序
  8. 朴素安静的宅寂风格装修
  9. python爬取知乎文章_Python爬取知乎日报,推送到kindle
  10. 有关Gabor滤波器