1 获取屏幕的宽和高
1)getWindowManager().getDefaultDisplay().getWidth();
getWindowManager().getDefaultDisplay().getHeight();

2)((WindowManager) getSystemService(WINDOW_SERVICE) .getDefaultDisplay().getWidth();
((WindowManager) getSystemService(WINDOW_SERVICE) .getDefaultDisplay().getHeight();

2 加载Animation
Animation animation = AnimationUtils.loadAnimation(this, R.anim.push_left_in);

3 判断字符串s中是否包含c字符
boolean isContains = s.contains(c);

4 获得service和activity本身实体的方法
private static ServiceName/ActivityName instance = null;
在onCreate()中使用instance = this; 来存储自己的实体。
public void onCreate(){
super.onCreate();
name = this;
}

编写一个静态方法返回实体
public static ServiceName/ActivityName getInstance(){
return instance;
}

5 获得系统当前语言
1)String currentLanguage = getResources().getConfiguration().local.getCountry();

2)IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
String currentLanguage = config.locale.toString();

6 锁定横竖屏
在Manifest.xml中的相应的activity中加入如下属性:
android:screenOrientation = "portrait"
//设置activity只显示竖屏
android:screenOrientation= "landscape"
//设置activity只显示横屏

7 横竖屏切换不销毁当前activity
在Manifest.xml中的相应的activity中加入如下属性:
android:configChanges="orientation|keyboardHidden"
在activity中重写public void onConfigurationChanged(Configuration newConfig)方法。

8 在activity中判断当前横竖屏状态
Configuration newConfig = this.getResources().getConfiguration();
if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
当前为竖屏状态
}
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
当前为横屏状态
}


9 检查网络是否可用
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
boolean hasNetwork = false;
if (info != null) {
hasNetwork = info.isAvailable();
}


10 常用主题
android:theme="@android:style/Theme.Dialog"将一个Activity显示为对话框的模式
android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序的标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序的标题栏,并全屏
android:theme="@android:style/Theme.Light"将一个Activity的背景设置为白色
android:theme="@android:style/Theme.Light.NoTitleBar"将一个Activity的背景设置为白色并无标题栏

android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"将一个Activity的背景设置为白色并无标题栏并全屏
android:theme="@android:style/Theme.Black" 将一个Activity的背景设置为黑色
android:theme="@android:style/Theme.Black.NoTitleBar" 将一个Activity的背景设置为黑色
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 将一个Activity的背景设置为黑色并无标题栏并全屏
android:theme="@android:style/Theme.Wallpaper" 用系统桌面为应用程序背景

android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,并无标题栏
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,并无标题栏并全屏android:theme="Translucent"android:theme="Theme.Translucent.NoTitleBar"android:theme="Theme.Translucent.NoTitleBar.Fullscreen"android:theme="Theme.Panel"

android:theme="Theme.Light.Panel"

11唤醒屏幕

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
//获得cpuWakeLock
PowerManager.WakeLock cpuWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, Log.LOGTAG);
cpuWakeLock.acquire();

//获得screenWakeLock
PowerManager.WakeLock screenWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, Log.LOGTAG);
screenWakeLock.acquire();

//释放cpuWakeLock
cpuWakeLock.release();

//释放screenWakeLock
screenWakeLock.release();

12 判断当前是否为锁屏状态
boolean isLocked = false;
KeyguardManager km = (KeyguardManager) getSystemService(
Context.KEYGUARD_SERVICE);
if (km.inKeyguardRestrictedInputMode()) {
isLocked = true;
}

13 MotionEvent的getX(),getY()与getRawx(),getRawY()的区别
如果是Activity实现OnTouchListener接口,需要重写onTouch(View view,MotionEvent event)这个方法,getRawX()和getRawY()获得的是相对屏幕的位置(整个屏幕),getX()和getY()获得的永远是view的触摸位置坐标(这两个值不会超过view的长度和宽度)。也就是getX()永远是你触摸的view的x位置,这个x就是鼠标相对于这个view的位置;getY()也是同样的处理。
getRawX()是你触摸的view的x位置,这个位置是相对于屏幕的位置,getRawY也是同样的处理。
还能获取触摸标题栏时的坐标位置,但是触摸状态栏时的坐标位置不能获得。

如果重写Activity的onTouchEvent(MotionEvent event),这个时候获得的是屏幕点击位置的坐标。getRawX()和getRawY()获得的是相对屏幕的位置(整个屏幕),getX()和getY()获得的永远是view的触摸位置坐标(这两个值不会超过view的长度和宽度)。也就是getX()永远是你触摸的view的x位置,这个x就是鼠标相对于这个view的位置;getY()也是同样的处理。而且标题栏和状态栏时的坐标位置都是不能获得。
(注:Activity上有两段宽度:一个是状态栏,一个是标题栏,每一个宽度都占了25像素)

14 view的getTop(),getBottom(),getLeft(),getRight()方法所获得的值

getTop()方法可以得到一个View的位置,这个方法返回的是相对于其父元素的位置,例如,如果getTop()返回20,则表示它和其直接父元素的上边界的距离是20像素。getBottom(),getLeft(),getRight()方法的用法与getTop()方法相同。另外,有一些方法的存在只是为了写程序的方便,如getRight()和getBottom()。getRight()和getLeft()+getWidth()的作用是一样的。而getBottom()和getTop()+getHeight()的作用是一样的。

更多相关文章

  1. android常用intent的方法
  2. 2012-7-20 android 图片叠加效果——两种方法
  3. Android右滑返回上一个界面的实现方法
  4. 系统关闭GPRS数据流量和 GPS的方法
  5. Android添加半透明操作提示的方法
  6. Android Activity中启动另一应用程序的方法
  7. Android ButterKnife 使用方法总结
  8. Android实现多线程断点下载的方法

随机推荐

  1. [翻译]微服务设计模式 - 8. 服务发现 -
  2. 如何在苹果Mac上的“邮件”中导入或导出
  3. [翻译]微服务设计模式 - 7. 服务发现 -
  4. nginx负载均衡简单设置
  5. Linux下典型IO模型 +select多路转接模型(
  6. JS数组性能小则|你以为的快不是真的快
  7. 曝苹果新款iPad Pro最早4月推出:配备雷电
  8. ProBuilder快速原型开发技术 ---进阶功能
  9. nginx反向代理443端口
  10. UML软件开发与建模工具Enterprise Archit