您的位置:首页 > 移动开发 > Android开发

Android 常用操作

2012-09-12 21:24 274 查看
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()的作用是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: