安卓系统API的使用
2015-08-28 00:49
316 查看
安卓系统给我提供很多API,现在我们就遇到一点写一点吧。
1、获取手机的内存大小以及SD卡的内存大小
我们Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种方式固然简单,但是在有些情况下,我们要求的只是简单的显示,用Activity显然是多余,这个时候,我们如何处理呢?
原来,整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。
写一个简单的代码:
Java代码
Java代码
一般在刚开始开发android时,会犯一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。
Java代码
未完待续…
1、获取手机的内存大小以及SD卡的内存大小
[code] /** * 初始化系统的数据 */ private void initData() { //获取Rom内存的运行剩余的内存 long rom = Environment.getDataDirectory().getFreeSpace(); //获取SD卡内存的运行剩余的内存 long sd = Environment.getExternalStorageDirectory().getFreeSpace(); //格式化内存显示 m String romStr = android.text.format.Formatter.formatFileSize(MainActivity.this, rom); //格式化内存显示 m String sdStr = android.text.format.Formatter.formatFileSize(MainActivity.this, sd); }
我们Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种方式固然简单,但是在有些情况下,我们要求的只是简单的显示,用Activity显然是多余,这个时候,我们如何处理呢?
原来,整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。
写一个简单的代码:
Java代码
[code]WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Button view = new Button(this); view.setText("window manager test!"); WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); mWm.addView(view, mParams);
Java代码
[code]//改变Dialog背景透明度 Dialog dg = new Dialog(this); Window window = dg.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.alpha = 0.5f; window.setAttributes(lp); //lp.alpha = 0.5f 透明度设置 其值要合理 自己反复测试 //为什么要这个技巧 因为很多人说:弹出Dialog会导致背景变暗 有Animation发生 导致性能变慢 可以用这个改变之 而且可以借助这个 使得全透明 不挡住Dialog后面内容的显示
一般在刚开始开发android时,会犯一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。
Java代码
[code]width = activity.getWindowManager().getDefaultDisplay().getWidth(); height = activity.getWindowManager().getDefaultDisplay().getHeight();
未完待续…
相关文章推荐
- 剑指Offer面试题:12.在O(1)时间删除链表结点
- poj2398Toy Storage【判断直线与点位置关系+排序+二分查找】
- linux网络配置
- perl获取AppAnnie数据
- javaScript的设计模式之单例模式
- 66 GCD常用方法
- (Java)《head first java》值得Java或面向对象基础的新手看。
- 用cordova插件实现ionic第三方登录,获取信息和分享
- Objective-C 学习笔记:从HelloWorld开始
- DT梦工厂 第25课 Scala中curring实战详解
- Python中的字符串相关转换
- 系统host文件的作用有哪些
- 多线程开发之二 NSOperation
- linux grep使用以及grep使用练习
- 第1讲:Win32 PE病毒入门
- Android 数据库SQLite的操作总结
- 如何正确获得ListView的每一个item高度
- [C++11 并发编程] 14 关联任务与期望
- C#中要使ListBox使用AddRange()时,能够触发SelectedValueChanged事件
- 从零开始学 iOS 开发的15条建议