android学习

上一篇 / 下一篇  2011-12-17 19:02:54 / 个人分类:个人日志

看了网上很多关于音乐播放器的例子,对于新手的自己正好边学编练习,考虑的好久,决定先布局,然后弄代码

     1.获取屏幕的宽和高:

  Android中的DisplayMetrics 定义了屏幕的一些属性,可以通过 getMetrics 方法得到当前屏幕的DisplayMetrics 属性,从而取得屏幕的宽和高。


(1)

DisplayMetrics  dm = new DisplayMetrics();   
//取得窗口属性   
getWindowManager().getDefaultDisplay().getMetrics(dm);     
//窗口的宽度   
int screenWidth = dm.widthPixels;   
//窗口高度   
int screenHeight = dm.heightPixels;


(2)

WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();


2.得到状态栏和标题栏的高度

(1)获取状态栏高度:

decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 于是,我们就可以算出状态栏的高度了。

Rect frame. = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;

(2)获取标题栏高度:

getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。

int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的状态栏的高度
int titleBarHeight = contentTop - statusBarHeight

 

3.如果不做任何手机,当手机旋转时,界面就跟着手机旋转,以使文字总是正对着我们,但有时候界面一旋转就使布局不好看了,可以设置使界面固定横向或纵向。

设置方法:在AndroidManifest.xml中的Activity里加一个属性android:screenOrientation。例如设置该Activity为横向:

<activity android:name=".Login"
android:screenOrientation="landscape">
</activity>

screenOrientation的值有以下几种:
landscape:横向
portrait:纵向
unspecified:默认值,由系统判断状态自动切换
user:用户当前设置的orientation值.
behind:下一个要显示的Activity的orientation值.
sensor:传感器的方向
nosensor:不使用传感器,这个效果差不多等于unspecified

4.

protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
}
补充一下创建锁时flag的值及意义:
int flags 
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

5.获取存储卡信息

/** 获取存储卡路径 */  
  File sdcardDir=Environment.getExternalStorageDirectory();   
  /** StatFs 看文件系统空间使用情况 */  
  StatFs statFs=new StatFs(sdcardDir.getPath());   
  /** Block 的 size*/  
  Long blockSize=statFs.getBlockSize();   
  /** 总 Block 数量 */  
 long totalBlocks=statFs.getBlockCount();   
  /** 已使用的 Block 数量 */  
  Long availableBlocks=statFs.getAvailableBlocks();

TAG:

 

评分:0

我来说两句

Open Toolbar