• android实用代码


    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。 

  • 相关阅读:
    【总有一些东西老是忘】之——常见HTML的块级标签、内联标签
    【JS跨域取XML】之——借助AS的URLLoader
    【前端重构技能天赋】(二)——Javascript、CSS篇
    【IE大叔的嘴歪眼斜】之—— 由hasLayout引发的临床CSS Bug表
    【F12一下,看看页面里的第一行】——说说浏览器兼容性模式
    【IE大叔的杀马特审美】之——CSS盒子模型
    【前端重构技能天赋】(一)——内容篇
    【总有一些东西要弄清】——说说面试时一系列的CSS问题
    【拆了CSS照样是页面】之——HTML语义化(含H5)
    【javascript继承】之——原型链继承和类式继承
  • 原文地址:https://www.cnblogs.com/pbq-dream/p/5354129.html
Copyright © 2020-2023  润新知