从网上找的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循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.