zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    BZOJ 1101 莫比乌斯函数+分块
    BZOJ 2045 容斥原理
    BZOJ 4636 (动态开节点)线段树
    BZOJ 2005 容斥原理
    BZOJ 2190 欧拉函数
    BZOJ 2818 欧拉函数
    BZOJ 3123 主席树 启发式合并
    812. Largest Triangle Area
    805. Split Array With Same Average
    794. Valid Tic-Tac-Toe State
  • 原文地址:https://www.cnblogs.com/SZ2015/p/4749937.html
Copyright © 2011-2022 走看看