从网上找的Android实用代码,记录备用

2024-03-24 09:32

本文主要是介绍从网上找的Android实用代码,记录备用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

1
2
3
4
5
6
7
8
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;}

3、检测字符串中只能包含:中文、数字、下划线(_)、横线(-)

1
2
3
4
5
6
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();}

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

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

5、使用TransitionDrawable实现渐变效果(比使用AlphaAnimation效果要好,可避免出现闪烁问题)

1
2
3
4
5
6
7
8
private void setImageBitmap(ImageView imageView, Bitmap bitmap) {// Use TransitionDrawable to fade in.final TransitionDrawable td = new TransitionDrawable(new Drawable[] { new ColorDrawable(android.R.color.transparent), new BitmapDrawable(mContext.getResources(), bitmap) });//noinspection deprecationimageView.setBackgroundDrawable(imageView.getDrawable());imageView.setImageDrawable(td);td.startTransition(200);}

6、Android中dp、sp和px的相互转换
(在此之前px和sp相互转换一直都用density,后来才发现是错的,有些手机上density和scaledDensity的值一样所以没发现有什么区别,但是在大分辨率的手机上两个值不一样,导致转换出来的字体尺寸有问题)

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
  * 将px值转换为dip或dp值,保证尺寸大小不变
  * 
  * @param pxValue
  * @param scale(DisplayMetrics类中属性density)
  * @return
  */public static int px2dip(float pxValue, float scale) {return (int) (pxValue / scale + 0.5f);}/**
  * 将dip或dp值转换为px值,保证尺寸大小不变
  * 
  * @param dipValue
  * @param scale(DisplayMetrics类中属性density)
  * @return
  */public static int dip2px(float dipValue, float scale) {return (int) (dipValue * scale + 0.5f);}/**
  * 将px值转换为sp值,保证文字大小不变
  * 
  * @param pxValue
  * @param fontScale(DisplayMetrics类中属性scaledDensity)
  * @return
  */public static int px2sp(float pxValue, float fontScale) {return (int) (pxValue / fontScale + 0.5f);}/**
  * 将sp值转换为px值,保证文字大小不变
  * 
  * @param spValue
  * @param fontScale(DisplayMetrics类中属性scaledDensity)
  * @return
  */public static int sp2px(float spValue, float fontScale) {return (int) (spValue * fontScale + 0.5f);}
}

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

1
2
3
4
5
6
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);}

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

1
2
3
public static boolean isTablet(Context context) {return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;}

9、启动APK的默认Activity

 123456789
10
11
12
13
14
15
16
17
18
19
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);}}

10、计算字宽

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

(注意如果设置了textStyle,还需要进一步设置TextPaint。)

11、半角、全角字符转换

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
     * 半角转全角
     * 
     * @param input
     *            String.
     * @return 全角字符串.
     */public static String ToSBC(String input) {char c[] = input.toCharArray();for (int i = 0; i < c.length; i++) {if (c[i] == ' ') {c[i] = 'u3000'; // 采用十六进制,相当于十进制的12288} else if (c[i] < '177') { // 采用八进制,相当于十进制的127c[i] = (char) (c[i] + 65248);}}return new String(c);}/**
     * 全角转半角
     * 
     * @param input
     *            String.
     * @return 半角字符串
     */public static String ToDBC(String input) {char c[] = input.toCharArray();for (int i = 0; i < c.length; i++) {if (c[i] == 'u3000') {c[i] = ' ';} else if (c[i] > 'uFF00' && c[i] < 'uFF5F') {c[i] = (char) (c[i] - 65248);}}String returnString = new String(c);return returnString;}

12、查看应用最高可用内存

1
2
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);  
Log.d("TAG", "Max memory is " + maxMemory + "KB");

转自:http://my.eoe.cn/sisuer/archive/5917.html

这篇关于从网上找的Android实用代码,记录备用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841190

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例