Android 360Float悬浮框项目笔记
2016-03-02 11:36
295 查看
借鉴 郭霖大神的专栏博客,地址:
http://blog.csdn.net/guolin_blog/article/details/8689140
1、getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕)
2。 (一)用于获取状态栏的高度。
`
`
(二)屏幕高度和宽度获取方法
(三)获取标题栏的高度
(四)、获取ActionBar高度
3。计算内存
android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息
subMemoryLine.replaceAll(“\D+”, “”) 把非数字字符去掉。
关于android系统信息(内存、cpu、sd卡、电量、版本)获取请移至博客http://gqdy365.iteye.com/blog/1066113
相关的代码,原文链接郭霖大神博客里有,有需要的大家可以去下载。
http://download.csdn.net/detail/sinyu890807/5158470
学习记录
http://blog.csdn.net/guolin_blog/article/details/8689140
1、getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕)
2。 (一)用于获取状态栏的高度。
`
private int getStatusBarHeight() { if (statusBarHeight == 0) { try { Class<?> c = Class.forName("com.android.internal.R$dimen"); Object o = c.newInstance(); Field field = c.getField("status_bar_height"); int x = (Integer) field.get(o); statusBarHeight = getResources().getDimensionPixelSize(x); } catch (Exception e) { e.printStackTrace(); } } return statusBarHeight; }
`
(二)屏幕高度和宽度获取方法
int screenWidth,screenHeight; WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight();
(三)获取标题栏的高度
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); //statusBarHeight是上面状态栏的高度 int titleBarHeight = contentTop - statusBarHeight;
(四)、获取ActionBar高度
int actionBarHeight = getActionBar().getHeight();
3。计算内存
/** * 计算已使用内存的百分比,并返回。 * * @param context * 可传入应用程序上下文。 * @return 已使用内存的百分比,以字符串形式返回。 */ public static String getUsedPercentValue(Context context) { String dir = "/proc/meminfo"; try { FileReader fr = new FileReader(dir); BufferedReader br = new BufferedReader(fr, 2048); String memoryLine = br.readLine(); String subMemoryLine = memoryLine.substring(memoryLine.indexOf("MemTotal:")); br.close(); long totalMemorySize = Integer.parseInt(subMemoryLine.replaceAll("\\D+", "")); long availableSize = getAvailableMemory(context) / 1024; int percent = (int) ((totalMemorySize - availableSize) / (float) totalMemorySize * 100); return percent + "%"; } catch (IOException e) { e.printStackTrace(); } return "悬浮窗"; } /** * 获取当前可用内存,返回数据以字节为单位。 * * @param context * 可传入应用程序上下文。 * @return 当前可用内存。 */ private static long getAvailableMemory(Context context) { ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); getActivityManager(context).getMemoryInfo(mi); return mi.availMem; }
android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息
subMemoryLine.replaceAll(“\D+”, “”) 把非数字字符去掉。
关于android系统信息(内存、cpu、sd卡、电量、版本)获取请移至博客http://gqdy365.iteye.com/blog/1066113
/** * 获得属于桌面的应用的应用包名称 * * @return 返回包含所有包名的字符串列表 */ private List<String> getHomes() { List<String> names = new ArrayList<String>(); PackageManager packageManager = this.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo ri : resolveInfo) { names.add(ri.activityInfo.packageName); } return names; }
相关的代码,原文链接郭霖大神博客里有,有需要的大家可以去下载。
http://download.csdn.net/detail/sinyu890807/5158470
学习记录
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析