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。

 

posted @ 2015-08-22 11:42  一汪海洋  阅读(281)  评论(0编辑  收藏  举报