加载中…
个人资料
一叶知秋
一叶知秋
  • 博客等级:
  • 博客积分:0
  • 博客访问:425,547
  • 关注人气:82
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

android中关于手机屏幕的相关操作

(2012-10-20 15:13:34)
标签:

android

屏幕

分辨率

it

分类: android开发

这里总结下android中关于手机屏幕的相关操作:

1获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同采取不同的布局或显示不同的素材)

    // 通过WindowManager获取

        DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

System.out.println("heigth : " + dm.heightPixels);

System.out.println("width : " + dm.widthPixels);

     // 通过Resources获取 

       DisplayMetrics dm2 = getResources().getDisplayMetrics();

System.out.println("heigth2 : " + dm2.heightPixels);

System.out.println("width2 : " + dm2.widthPixels);

    // 获取屏幕的默认分辨率

       Display display = getWindowManager().getDefaultDisplay();

System.out.println("width-display :" + display.getWidth());

System.out.println("heigth-display :" + display.getHeight());

2、去掉屏幕标题及全屏显示

     // 去掉标题  

      requestWindowFeature(Window.FEATURE_NO_TITLE);  

    // 设置全屏  

      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  

              WindowManager.LayoutParams.FLAG_FULLSCREEN);

3、设置屏幕的方向

Manifest.xml文件中配置Activity的属性

<activity android:name=".AnimateActivity" android:label="@string/app_name" 

 android:screenOrientation="landscape"><!--landscape 横屏portrait 竖屏--> 

     <intent-filter> 

<action android:name="android.intent.action.MAIN" /> 

<category android:name="android.intent.category.LAUNCHER" /> 

  </intent-filter> 

</activity>

在程序中控制,一般在Activity中的onCreateonDestroy方法中控制,因为在屏幕方向发生变化时,系统会重新启动Activity。所以需要再Activity销毁前保存相关数据,方便在下次onCreate方法中重新加载,并更新屏幕的布局

    public void onCreate(Bundle savedInstanceState) {  

    //强制横屏  

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  

    // TODO 更新屏幕布局  

 

 

public void onDestroy()

          

      if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

       

        // 保存数据  

    }

     else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)

    

      // 保存数据  

    

}

下面是两个简单的demo

 import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class TheResolutionActivity extends Activity {
    private TextView tv;
    private Button btn;
    //
获取手机屏幕分辨率的类
    private DisplayMetrics dm;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //
获取布局中TextView,Button对像
        tv = (TextView) findViewById(R.id.tv);
        btn = (Button) findViewById(R.id.btnOK);
        //
增加button事件响应
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                dm = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(dm);
                //
获得手机的宽度和高度像素单位为px
                String strPM = "手机屏幕分辨率为:" + dm.widthPixels + "* "
                        +dm.heightPixels;
                tv.setText(strPM);
            }
        });
    }
}


 也可以这样:

package yc.android.resolution;

import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;

public class TheResolutionActivity extends Activity {
    private TextView tv;
    private Button btn;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //
获取布局中TextView,Button对像
        tv = (TextView) findViewById(R.id.tv);
        btn = (Button) findViewById(R.id.btnOK);
        //
增加button事件响应
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                WindowManager windowManager = getWindowManager();
                Display dm = windowManager.getDefaultDisplay();
                //
获得手机的宽度和高度像素单位为px
                String strPM = "手机屏幕分辨率为:" + dm.getWidth() + "* "
                        + dm.getHeight();
                tv.setText(strPM);
            }
        });
    }
}

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有