Android实用代码片段整合

本帖最后由 ℡_莫忘ヽ悇溫╭ 于 2015-3-24 11:49 编辑

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、        判断是否是平板(官方用法)

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

复制代码

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

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:color="#53c1bd" android:state_selected="true"/>
  3. <item android:color="#53c1bd" android:state_focused="true"/>
  4. <item android:color="#53c1bd" android:state_pressed="true"/>
  5. <item android:color="#777777"/>
  6. </selector>

复制代码

放在res/color/目录下
4、背景色根据状态更改颜色 android:backgroup

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:state_selected="true"><shape>            <gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
  3. </shape></item>
  4. <item android:state_focused="true"><shape>
  5. <gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
  6. </shape></item>
  7. <item android:state_pressed="true"><shape>
  8. <gradient android:angle="0" android:centerColor="#00a59f" android:endColor="#00a59f" android:startColor="#00a59f" />
  9. </shape></item>
  10. <item><shape>
  11. <gradient android:angle="0" android:centerColor="#00ff00" android:endColor="00ff00" android:startColor="00ff00" />
  12. </shape></item>
  13. </selector>

复制代码

如果直接给背景色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. List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);
  10. ResolveInfo ri = apps.iterator().next();
  11. if (ri != null) {
  12. String className = ri.activityInfo.name;
  13. intent.setComponent(new ComponentName(packageName, className));
  14. ctx.startActivity(intent);
  15. }
  16. } catch (NameNotFoundException e) {
  17. Log.e("startActivity", e);
  18. }
  19. }

复制代码

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. }

复制代码

注意如果设置了textStyle,还需要进一步设置TextPaint。 
8、获取应用程序下所有Activity

  1. public static ArrayList<String> getActivities(Context ctx) {
  2. ArrayList<String> result = new ArrayList<String>();
  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、检测字符串中是否包含汉字

  1. public static boolean checkChinese(String sequence) {
  2. final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]";
  3. boolean result = false;
  4. Pattern pattern = Pattern.compile(format);
  5. Matcher matcher = pattern.matcher(sequence);
  6. result = matcher.find();
  7. return result;
  8. }

复制代码

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

  1. public static boolean checkNickname(String sequence) {
  2. final String format = "[^\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w-_]";
  3. Pattern pattern = Pattern.compile(format);
  4. Matcher matcher = pattern.matcher(sequence);
  5. return !matcher.find();
  6. }

复制代码

11、检查有没有应用程序来接受处理你发出的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<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  5. return list.size() > 0;
  6. }

复制代码

12、使用TransitionDrawable实现渐变效果

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

复制代码

比使用AlphaAnimation效果要好,可避免出现闪烁问题。
13、扫描指定的文件
     sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
     用途:从本软件新增、修改、删除图片、文件某一个文件(音频、视频)需要更新系统媒体库时使用,不必扫描整个SD卡

14、Dip转px

  1. public static int dipToPX(final Context ctx, float dip) {
  2. return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, ctx.getResources().getDisplayMetrics());
  3. }

复制代码

用途:难免在Activity代码中设置位置、大小等,本方法就很有用了! 
15、获取已经安装APK的路径

  1. PackageManager pm = getPackageManager();
  2. for (ApplicationInfo app : pm.getInstalledApplications(0)) {
  3. Log.d("PackageList", "package: " + app.packageName + ", sourceDir: " + app.sourceDir);
  4. }

复制代码

输出如下:

  1. package: com.tmobile.thememanager, sourceDir: /system/app/ThemeManager.apk
  2. package: com.touchtype.swiftkey, sourceDir: /data/app/com.touchtype.swiftkey-1.apk

复制代码

16、
多进程Preferences数据共享

  1. public static void putStringProcess(Context ctx, String key, String value) {
  2. SharedPreferences sharedPreferences = ctx.getSharedPreferences("preference_mu", Context.MODE_MULTI_PROCESS);
  3. Editor editor = sharedPreferences.edit();
  4. editor.putString(key, value);
  5. editor.commit();
  6. }
  7. public static String getStringProcess(Context ctx, String key, String defValue) {
  8. SharedPreferences sharedPreferences = ctx.getSharedPreferences("preference_mu", Context.MODE_MULTI_PROCESS);
  9. return sharedPreferences.getString(key, defValue);
  10. }

复制代码

相关文章:

http://zengrong.net/post/1687.htm

17、泛型ArrayList转数组

  1. @SuppressWarnings("unchecked")
  2. public static <T> T[] toArray(Class<?> cls, ArrayList<T> items) {
  3. if (items == null || items.size() == 0) {
  4. return (T[]) Array.newInstance(cls, 0);
  5. }
  6. return items.toArray((T[]) Array.newInstance(cls, items.size()));
  7. }

复制代码

18、保存恢复ListView当前位置

  1. private void saveCurrentPosition() {
  2. if (mListView != null) {
  3. int position = mListView.getFirstVisiblePosition();
  4. View v = mListView.getChildAt(0);
  5. int top = (v == null) ? 0 : v.getTop();
  6. //保存position和top
  7. }
  8. }
  9. private void restorePosition() {
  10. if (mFolder != null && mListView != null) {
  11. int position = 0;//取出保存的数据
  12. int top = 0;//取出保存的数据
  13. mListView.setSelectionFromTop(position, top);
  14. }
  15. }

复制代码

可以保存在Preference中或者是数据库中,数据加载完后再设置。

19、调用 便携式热点和数据共享 设置

  1. public static Intent getHotspotSetting() {
  2. Intent intent = new Intent();
  3. intent.setAction(Intent.ACTION_MAIN);
  4. ComponentName com = new ComponentName("com.android.settings", "com.android.settings.TetherSettings");
  5. intent.setComponent(com);
  6. return intent;
  7. }

复制代码

20、格式化输出IP地址

  1. public static String getIp(Context ctx) {
  2. return Formatter.formatIpAddress((WifiManager) ctx.getSystemService(Context.WIFI_SERVICE).getConnectionInfo().getIpAddress());
  3. }

复制代码

21、文件夹排序(先文件夹排序,后文件排序)

  1. public static void sortFiles(File[] files) {
  2. Arrays.sort(files, new Comparator<File>() {
  3. @Override
  4. public int compare(File lhs, File rhs) {
  5. //返回负数表示o1 小于o2,返回0 表示o1和o2相等,返回正数表示o1大于o2。
  6. boolean l1 = lhs.isDirectory();
  7. boolean l2 = rhs.isDirectory();
  8. if (l1 && !l2)
  9. return -1;
  10. else if (!l1 && l2)
  11. return 1;
  12. else {
  13. return lhs.getName().compareTo(rhs.getName());
  14. }
  15. }
  16. });
  17. }

复制代码

22、发送不重复的通知(Notification)

  1. public static void sendNotification(Context context, String title,
  2. String message, Bundle extras) {
  3. Intent mIntent = new Intent(context, FragmentTabsActivity.class);
  4. mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  5. mIntent.putExtras(extras);
  6. int requestCode = (int) System.currentTimeMillis();
  7. PendingIntent mContentIntent = PendingIntent.getActivity(context,
  8. requestCode, mIntent, 0);
  9. Notification mNotification = new NotificationCompat.Builder(context)
  10. .setContentTitle(title).setSmallIcon(R.drawable.app_icon)
  11. .setContentIntent(mContentIntent).setContentText(message)
  12. .build();
  13. mNotification.flags |= Notification.FLAG_AUTO_CANCEL;
  14. mNotification.defaults = Notification.DEFAULT_ALL;
  15. NotificationManager mNotificationManager = (NotificationManager) context
  16. .getSystemService(Context.NOTIFICATION_SERVICE);
  17. mNotificationManager.notify(requestCode, mNotification);
  18. }

复制代码

关键点在这个requestCode,这里使用的是当前系统时间,巧妙的保证了每次都是一个新的Notification产生。

23、代码设置TextView的样式

使用过自定义Dialog可能马上会想到用如下代码:

new TextView(this,null,R.style.text_style);

但你运行这代码你会发现毫无作用!正确用法:

new TextView(new ContextThemeWrapper(this, R.style.text_style))

24、ip地址转成8位十六进制串

  1. /** ip转16进制 */
  2. public static String ipToHex(String ips) {
  3. StringBuffer result = new StringBuffer();
  4. if (ips != null) {
  5. StringTokenizer st = new StringTokenizer(ips, ".");
  6. while (st.hasMoreTokens()) {
  7. String token = Integer.toHexString(Integer.parseInt(st.nextToken()));
  8. if (token.length() == 1)
  9. token = "0" + token;
  10. result.append(token);
  11. }
  12. }
  13. return result.toString();
  14. }
  15. /** 16进制转ip */
  16. public static String texToIp(String ips) {
  17. try {
  18. StringBuffer result = new StringBuffer();
  19. if (ips != null && ips.length() == 8) {
  20. for (int i = 0; i < 8; i += 2) {
  21. if (i != 0)
  22. result.append(‘.‘);
  23. result.append(Integer.parseInt(ips.substring(i, i + 2), 16));
  24. }
  25. }
  26. return result.toString();
  27. } catch (NumberFormatException ex) {
  28. Logger.e(ex);
  29. }
  30. return "";
  31. }

复制代码

ip:192.168.68.128 16 =>hex :c0a84480

25、WebView保留缩放功能但隐藏缩放控件

  1. mWebView.getSettings().setSupportZoom(true);
  2. mWebView.getSettings().setBuiltInZoomControls(true);
  3. if (DeviceUtils.hasHoneycomb())
  4. mWebView.getSettings().setDisplayZoomControls(false);

复制代码

注意:setDisplayZoomControls是在API Level 11中新增。

26、获取网络类型名称

  1. public static String getNetworkTypeName(Context context) {
  2. if (context != null) {
  3. ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  4. if (connectMgr != null) {
  5. NetworkInfo info = connectMgr.getActiveNetworkInfo();
  6. if (info != null) {
  7. switch (info.getType()) {
  8. case ConnectivityManager.TYPE_WIFI:
  9. return "WIFI";
  10. case ConnectivityManager.TYPE_MOBILE:
  11. return getNetworkTypeName(info.getSubtype());
  12. }
  13. }
  14. }
  15. }
  16. return getNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOWN);
  17. }
  18. public static String getNetworkTypeName(int type) {
  19. switch (type) {
  20. case TelephonyManager.NETWORK_TYPE_GPRS:
  21. return "GPRS";
  22. case TelephonyManager.NETWORK_TYPE_EDGE:
  23. return "EDGE";
  24. case TelephonyManager.NETWORK_TYPE_UMTS:
  25. return "UMTS";
  26. case TelephonyManager.NETWORK_TYPE_HSDPA:
  27. return "HSDPA";
  28. case TelephonyManager.NETWORK_TYPE_HSUPA:
  29. return "HSUPA";
  30. case TelephonyManager.NETWORK_TYPE_HSPA:
  31. return "HSPA";
  32. case TelephonyManager.NETWORK_TYPE_CDMA:
  33. return "CDMA";
  34. case TelephonyManager.NETWORK_TYPE_EVDO_0:
  35. return "CDMA - EvDo rev. 0";
  36. case TelephonyManager.NETWORK_TYPE_EVDO_A:
  37. return "CDMA - EvDo rev. A";
  38. case TelephonyManager.NETWORK_TYPE_EVDO_B:
  39. return "CDMA - EvDo rev. B";
  40. case TelephonyManager.NETWORK_TYPE_1xRTT:
  41. return "CDMA - 1xRTT";
  42. case TelephonyManager.NETWORK_TYPE_LTE:
  43. return "LTE";
  44. case TelephonyManager.NETWORK_TYPE_EHRPD:
  45. return "CDMA - eHRPD";
  46. case TelephonyManager.NETWORK_TYPE_IDEN:
  47. return "iDEN";
  48. case TelephonyManager.NETWORK_TYPE_HSPAP:
  49. return "HSPA+";
  50. default:
  51. return "UNKNOWN";
  52. }
  53. }

复制代码

27、Android解压Zip包

  1. /**
  2. * 解压一个压缩文档 到指定位置
  3. *
  4. * @param zipFileString 压缩包的名字
  5. * @param outPathString 指定的路径
  6. * [url=home.php?mod=space&uid=2643633]@throws[/url] Exception
  7. */
  8. public static void UnZipFolder(String zipFileString, String outPathString) throws Exception {
  9. java.util.zip.ZipInputStream inZip = new java.util.zip.ZipInputStream(new java.io.FileInputStream(zipFileString));
  10. java.util.zip.ZipEntry zipEntry;
  11. String szName = "";
  12. while ((zipEntry = inZip.getNextEntry()) != null) {
  13. szName = zipEntry.getName();
  14. if (zipEntry.isDirectory()) {
  15. // get the folder name of the widget
  16. szName = szName.substring(0, szName.length() - 1);
  17. java.io.File folder = new java.io.File(outPathString + java.io.File.separator + szName);
  18. folder.mkdirs();
  19. } else {
  20. java.io.File file = new java.io.File(outPathString + java.io.File.separator + szName);
  21. file.createNewFile();
  22. // get the output stream of the file
  23. java.io.FileOutputStream out = new java.io.FileOutputStream(file);
  24. int len;
  25. byte[] buffer = new byte[1024];
  26. // read (len) bytes into buffer
  27. while ((len = inZip.read(buffer)) != -1) {
  28. // write (len) byte from buffer at the position 0
  29. out.write(buffer, 0, len);
  30. out.flush();
  31. }
  32. out.close();
  33. }
  34. }//end of while
  35. inZip.close();
  36. }//end of func

复制代码

28、从assets中读取文本和图片资源

  1. /** 从assets 文件夹中读取文本数据 */
  2. public static String getTextFromAssets(final Context context, String fileName) {
  3. String result = "";
  4. try {
  5. InputStream in = context.getResources().getAssets().open(fileName);
  6. // 获取文件的字节数
  7. int lenght = in.available();
  8. // 创建byte数组
  9. byte[] buffer = new byte[lenght];
  10. // 将文件中的数据读到byte数组中
  11. in.read(buffer);
  12. result = EncodingUtils.getString(buffer, "UTF-8");
  13. in.close();
  14. } catch (Exception e) {
  15. e.printStackTrace();
  16. }
  17. return result;
  18. }
  19. /** 从assets 文件夹中读取图片 */
  20. public static Drawable loadImageFromAsserts(final Context ctx, String fileName) {
  21. try {
  22. InputStream is = ctx.getResources().getAssets().open(fileName);
  23. return Drawable.createFromStream(is, null);
  24. } catch (IOException e) {
  25. if (e != null) {
  26. e.printStackTrace();
  27. }
  28. } catch (OutOfMemoryError e) {
  29. if (e != null) {
  30. e.printStackTrace();
  31. }
  32. } catch (Exception e) {
  33. if (e != null) {
  34. e.printStackTrace();
  35. }
  36. }
  37. return null;
  38. }

复制代码

29、展开、收起状态栏

  1. public static final void collapseStatusBar(Context ctx) {
  2. Object sbservice = ctx.getSystemService("statusbar");
  3. try {
  4. Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
  5. Method collapse;
  6. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
  7. collapse = statusBarManager.getMethod("collapsePanels");
  8. } else {
  9. collapse = statusBarManager.getMethod("collapse");
  10. }
  11. collapse.invoke(sbservice);
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. public static final void expandStatusBar(Context ctx) {
  17. Object sbservice = ctx.getSystemService("statusbar");
  18. try {
  19. Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
  20. Method expand;
  21. if (Build.VERSION.SDK_INT >= 17) {
  22. expand = statusBarManager.getMethod("expandNotificationsPanel");
  23. } else {
  24. expand = statusBarManager.getMethod("expand");
  25. }
  26. expand.invoke(sbservice);
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. }

复制代码

用途:可用于点击Notifacation之后收起状态栏

30、获取状态栏高度

  1. public static int getStatusBarHeight(Context context){
  2. Class<?> c = null;
  3. Object obj = null;
  4. Field field = null;
  5. int x = 0, statusBarHeight = 0;
  6. try {
  7. c = Class.forName("com.android.internal.R$dimen");
  8. obj = c.newInstance();
  9. field = c.getField("status_bar_height");
  10. x = Integer.parseInt(field.get(obj).toString());
  11. statusBarHeight = context.getResources().getDimensionPixelSize(x);
  12. } catch (Exception e1) {
  13. e1.printStackTrace();
  14. }
  15. return statusBarHeight;
  16. }

复制代码

31、ListView使用ViewHolder极简写法

  1. public static <T extends View> T getAdapterView(View convertView, int id) {
  2. SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag();
  3. if (viewHolder == null) {
  4. viewHolder = new SparseArray<View>();
  5. convertView.setTag(viewHolder);
  6. }
  7. View childView = viewHolder.get(id);
  8. if (childView == null) {
  9. childView = convertView.findViewById(id);
  10. viewHolder.put(id, childView);
  11. }
  12. return (T) childView;
  13. }

复制代码

用法:

  1. @Override
  2. public View getView(int position, View convertView, ViewGroup parent) {
  3. if (convertView == null) {
  4. convertView = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_feed_item, parent, false);
  5. }
  6. ImageView thumnailView = getAdapterView(convertView, R.id.video_thumbnail);
  7. ImageView avatarView =  getAdapterView(convertView, R.id.user_avatar);
  8. ImageView appIconView = getAdapterView(convertView, R.id.app_icon);

复制代码

用起来非常简练,将ViewHolder隐于无形。

32、设置Activity透明

  1. <style name="TransparentActivity" parent="AppBaseTheme">
  2. <item name="android:windowBackground">@android:color/transparent</item>
  3. <item name="android:colorBackgroundCacheHint">@null</item>
  4. <item name="android:windowIsTranslucent">true</item>
  5. <item name="android:windowNoTitle">true</item>
  6. <item name="android:windowContentOverlay">@null</item>
  7. </style>

复制代码

说明:AppBaseTheme一般是你application指定的android:theme是啥这里就是啥,否则Activity内部的空间风格可能不一致。

用途:用于模拟Dialog效果,比如再Service中没法用Dialog,就可以用Activity来模拟

33、代码切换全屏

  1. //切换到全屏
  2. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
  3. getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  4. //切换到非全屏
  5. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  6. getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

复制代码

注意:切换到全屏时,底部的虚拟按键仍然是显示的。次方法可多次调用用于切换

用途:播放器界面经常会用到

34、调用开发者选项中显示触摸位置功能

android.provider.Settings.System.putInt(getContentResolver(), "show_touches", 1);

设置1显示,设置0不显示。

35、获取设备上已安装并且可启动的应用列表

  1. Intent intent = new Intent(Intent.ACTION_MAIN);
  2. intent.addCategory(Intent.CATEGORY_LAUNCHER);
  3. List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, 0)

复制代码

注意:使用getInstalledApplications会返回很多无法启动甚至没有图标的系统应用。ResolveInfo.activityInfo.applicationInfo也能取到你                     想要的数据。

时间: 2024-10-03 06:55:05

Android实用代码片段整合的相关文章

android 实用代码片段整理

android 常用代码片段,前1-10条是从网上摘录,向原作者致谢.后面为自己整理. 1.设置窗口格式为半透明 getWindow().setFormat(PixelFormat.TRANSLUCENT); 2.Android中在非UI线程里更新View的不同方法: * Activity.runOnUiThread( Runnable ) * View.post( Runnable ) * View.postDelayed( Runnable, long ) * Hanlder 3.全屏显示窗

Android 实用代码片段

一些不常见确又很实用的代码块. 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(d

Android实用代码七段(五)

前言 每次分享意味着每次都有进步,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1.展开.收起状态栏 public static final void collapseStatusBar(Context ctx) {        Object sbservice = ctx.getSystemService("statu

android有用代码片段(一)

有时候,需要一些小的功能,找到以后,就把它贴到了博客下面,作为留言,查找起来很不方便,所以就整理一下,方便自己和他人. 一.  获取系统版本号: PackageInfo info = this.getPackageManager().getPackageInfo(this.getPackageName(), 0); int versionCode=nfo.versionCode string versionName=info.versionNam 二.获取系统信息: <span style=&quo

C#程序员经常用到的10个实用代码片段 - 操作系统

原文地址  如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来帮助,从底层的资源操作,到上层的UI应用,这些代码也许能给你的开发节省不少时间.以下是原文: 1 读取操作系统和CLR的版本 1 OperatingSystem os = System.Environment.OSVersion; 2 Console.WriteLine("Platform: {0}", os.Platform); 3 Console.WriteLine("Service P

回归 | js实用代码片段的封装与总结(持续更新中...)

上一次更博还是去年10月28号了,截至今天已经有整整4个月没有更新博客了,没更新博客不是代表不学了,期间我已经用vue做了两个项目,微信小程序做了一个项目,只是毕竟找到工作了,想偷偷懒,你懂的. 过年期间一直在关注js片段代码,虽然这个时代前端框架横行,大量上层工具层出不穷,比如http请求的封装:react的fetch.vue的axios(vue官方已经不用vue-resource了):知名的lodash,和最近发现的30-seconds-of-code,在我看来这些都是宝贝.言归正传,今天主

Android实用代码七段(三)

前言 终于又攒了一篇出来,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文  一.获取已经安装APK的路径 PackageManager pm = getPackageManager(); for (ApplicationInfo app : pm.getInstalledApplications(0)) {      Lo

Android实用代码大全

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,

Android实用代码七段(四)

声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1.发送不重复的通知(Notification) public static void sendNotification(Context context, String title,            String message, Bundle extras) {        Intent mIntent = new I