从网上找的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

相关文章

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引