博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实用代码七段(一)
阅读量:5147 次
发布时间:2019-06-13

本文共 2853 字,大约阅读时间需要 9 分钟。

前言

 这里积累了一些不常见确又很实用的代码,每收集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/SZ2015/p/4749937.html

你可能感兴趣的文章
一元享移动怎么样_中国移动终于认怂?29元享100G流量还不限速,网友:后悔携号转网了...
查看>>
redis将散裂中某个值自增_java面试题30道
查看>>
c 通过成员变量地址 获取类对象地址_【C++学习笔记(十二)】之类中成员变量与成员函数的存储...
查看>>
a标签onclick不执行_你不知道的DOM操作
查看>>
object标签与embad掉钱_海口本地钯盐回收厂家-回收多少钱-源祥-金银饰品回收
查看>>
vue 属性是变量_Vue实战060:require与import的区别和使用
查看>>
json vue 对象转数组_vue $set详细教程 当数组或对象发生改变及时展示在页面上...
查看>>
lisp xy轴不等比缩放_Origin2017单y多x轴图片画法
查看>>
阿联酋esma认证_阿联酋发布全新的校车安全规则
查看>>
voip 音频采集时间_天津北星博辉互联网信息服务有限公司招聘日语音频审核
查看>>
apn描述文件下载_iOS 13描述文件放出 可以提前尝鲜啦!(附下载)
查看>>
win7更新错误0x800b0109_幺蛾子真多!Windows更新又闯祸了
查看>>
工业机器人什么情况下会出现奇点_汽车为什么会烧机油?车辆在什么情况下会出现烧机油的情况?...
查看>>
vant 带关闭按钮div_小米升级MIUI 11后,请先调整这3个按钮,不然电池会变得很不耐用...
查看>>
泰坦机器人节目秀_请自觉遵守规章制度,巡逻机器人正在执勤!
查看>>
手机闪存速度排行_你的手机在里面吗?目前几款主流处理器排行
查看>>
私有方法不能被子类覆盖_Java核心技术,继承:类+继承层次+强制类型转换+多态+抽象类...
查看>>
冯珊珊_专访一姐冯珊珊(上):高尔夫有助于K12教育 进社区将是趋势
查看>>
删除注册表文件_为了保护个人隐私,用这4招删除win10中的搜索历史记录
查看>>
3控制ie文档模式_Chromium版Edge浏览器将支持多平台,Windows版支持IE模式
查看>>