博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android_CodeWiki_01
阅读量:6500 次
发布时间:2019-06-24

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

 记录常用代码片,以备不时之需..wkakak,开始:

   1、 精确获取屏幕尺寸(例如:3.5、4.0、5.0寸屏幕) 

  

1  public static double getScreenPhysicalSize(Activity ctx) {2         DisplayMetrics dm = new DisplayMetrics();3         ctx.getWindowManager().getDefaultDisplay().getMetrics(dm);4         double diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) + Math.pow(dm.heightPixels, 2));5         return diagonalPixels / (160 * dm.density);6     }  一般小于7寸的,都是非平板,属于正常智能机系列

  2、 判断是否是平板(官方用法)

  

public static boolean isTablet(Context context) {        return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_L         ARGE;    }

3、 文字根据状态更改颜色 android:textColor 

  

放在工程 res/color/目录下

4、背景色根据状态更改颜色 android:backgroup

     

1 
2 3
4
5
6
7
8
9
10
11
12
13
14
15 16
  如果直接给背景色color会报错。

5、 启动APK的默认Activity

  

1 public static void startApkActivity(final Context ctx, String packageName) { 2         PackageManager pm = ctx.getPackageManager(); 3         PackageInfo pi; 4         try { 5             pi = pm.getPackageInfo(packageName, 0); 6             Intent intent = new Intent(Intent.ACTION_MAIN, null); 7             intent.addCategory(Intent.CATEGORY_LAUNCHER); 8             intent.setPackage(pi.packageName); 9 10             List
apps = pm.queryIntentActivities(intent, 0);11 12 ResolveInfo ri = apps.iterator().next();13 if (ri != null) {14 String className = ri.activityInfo.name;15 intent.setComponent(new ComponentName(packageName, className));16 ctx.startActivity(intent);17 }18 } catch (NameNotFoundException e) {19 Log.e("startActivity", e);20 }21 }

7、计算字宽

  

1  public static float GetTextWidth(String text, float Size) {2         TextPaint FontPaint = new TextPaint();3         FontPaint.setTextSize(Size);4         return FontPaint.measureText(text);5     }

8、获取应用程序下所有Activity 

  

1  public static ArrayList
getActivities(Context ctx) {2 ArrayList
result = new ArrayList
();3 Intent intent = new Intent(Intent.ACTION_MAIN, null);4 intent.setPackage(ctx.getPackageName());5 for (ResolveInfo info : ctx.getPackageManager().queryIntentActivities(intent, 0)) {6 result.add(info.activityInfo.name);7 }8 return result;9 }

9、检测字符串中是否包含汉字

  

public static boolean checkChinese(String sequence) {        final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]";        boolean result = false;        Pattern pattern = Pattern.compile(format);        Matcher matcher = pattern.matcher(sequence);        result = matcher.find();        return result;    } 检测字符串中只能包含:中文、数字、下划线(_)、横线(-)  public static boolean checkNickname(String sequence) {
        final String format = "[^\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w-_]";         Pattern pattern = Pattern.compile(format);         Matcher matcher = pattern.matcher(sequence);         return !matcher.find();     } 

10、检查有没有应用程序来接受处理你发出的intent

  

1  public static boolean isIntentAvailable(Context context, String action) {2         final PackageManager packageManager = context.getPackageManager();3         final Intent intent = new Intent(action);4         List
list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);5 return list.size() > 0;6 }

 参考:http://www.cnblogs.com/over140/archive/2013/03/05/2706068.html

你可能感兴趣的文章
MySQL表结构变更,不可不知的Metadata Lock
查看>>
LeetCode - 766. Toeplitz Matrix
查看>>
基于Docker的UI自动化初探
查看>>
生产BackPressure 的代码
查看>>
秒懂,Java 注解 (Annotation)你可以这样学
查看>>
七月随想
查看>>
(原創) 如何使用C#與DrectDraw在Windows模式下繪製矩形? (.NET) (DirectX)
查看>>
[关注]Visual Studio 2010 和 .NET Framework 4.0 专题
查看>>
信息系统开发平台OpenExpressApp - 支持差异保存
查看>>
linux下的webserver BOA及CGIC库的使用指南(转帖)
查看>>
[zz]在linux中出现there are stopped jobs 的解决方法
查看>>
Delphi下实现全屏快速找图找色 一、数据提取
查看>>
Dissecting a C# Application: Inside SharpDevelop Announcement
查看>>
查询表字段信息
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
CentOS 6.4 x86_64 安装GCC 4.7.3
查看>>
logback与Log4J的区别
查看>>
关于机器学习的最佳科普文章:《从机器学习谈起》
查看>>
ssh相互访问不用密码
查看>>
Function Pointer
查看>>