Android实用代码七段(一)

前言

这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用。

声明

  欢迎转载,但请保留文章原始出处:) 
    博客园: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。

转载于:https://www.cnblogs.com/pbq-dream/p/5354129.html

android实用代码相关推荐

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

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

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

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

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

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

  4. android 实用代码

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

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

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

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

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

  7. Android实用代码大全

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

  8. Android实用代码1 - 转自农民伯伯

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1. 精确获取屏幕尺寸(例如: ...

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

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

最新文章

  1. 【Python学习笔记】输入raw_input(),特殊情况下也可以用input()
  2. python在当前目录创建txt文件-python-在目录中创建多个文本文件的字数字...
  3. 一本介绍Javascript 的很好的书【基础期间全局了解】
  4. python基础(part12)--模块
  5. Quartus II 与ModelSim-SE联合仿真Shift_ram
  6. npm 使用报错合集
  7. ASP.NET Core 使用 Hangfire 定时任务
  8. foobar 2000 介绍
  9. 浅谈unicode字符集及编码方式
  10. 单交换机的VLAN的配置
  11. 当update语句提交后,数据库做了哪些操作?
  12. 斐讯r1换网络_斐讯R1音响升级更新教程 亲测有效
  13. 大一计算机专业选修课,大学计算机类开什么公选课好?
  14. python远程监控_Python实现远程端口监控实例
  15. PT100转RS485热电阻Modbus低成本数据采集模块
  16. 读论文《Multi-Behavior Hypergraph-Enhanced Transformer for Sequential Recommendation》
  17. hyper-v导入硬盘无法启动解决方法
  18. 逃离烤鸭味的雾霾北京,我们还能去哪里?
  19. 两小时学会MySQL查询语句(下篇)
  20. Kali Linux 基于FreeFloat FTP Server编写漏洞渗透模块(下)

热门文章

  1. php yii框架路由,yii框架路由配置
  2. m.2接口和nvme区别_NVMe/SATA SSD有啥不一样?萌新怎么选
  3. scanf读取字符_在C语言中使用scanf()读取整数时跳过字符
  4. 04-图像的形状绘制
  5. 22-随机抽样一致算法RANSAC
  6. vector向量容器
  7. Java——线程的四种不同形式
  8. js取字符串后四位_JS逆向 | 某验滑块加密参数逆向分析
  9. BestCoder Round #86 1003 HDU 5806——NanoApe Loves Sequence Ⅱ
  10. 事务隔离级别动图演示