在实际应用中经常要获取屏幕的相关信息,比如高度、宽度、密度以及dp/dip和px之间的转换等等,下面这个示例简单介绍一下,代码如下:

GetSreenInfoActivity:

package com.home.getscreeninfo;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class GetSreenInfoActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Button getBtn = (Button) findViewById(R.id.main_btn);final EditText widthPxText = (EditText) findViewById(R.id.main_et_width_px);final EditText heightPxText = (EditText) findViewById(R.id.main_et_height_px);final EditText densityText = (EditText) findViewById(R.id.main_et_density);final EditText densityDpiText = (EditText) findViewById(R.id.main_et_density_dpi);final EditText widthDipText = (EditText) findViewById(R.id.main_et_width_dip);final EditText heightDipText = (EditText) findViewById(R.id.main_et_height_dip);getBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 屏幕宽度(px)int widthPx = GetSreenInfoActivity.this.getResources().getDisplayMetrics().widthPixels;// 屏幕高度(px)int heightPx = GetSreenInfoActivity.this.getResources().getDisplayMetrics().heightPixels;widthPxText.setText(widthPx + "");heightPxText.setText(heightPx + "");// 屏幕密度:指每平方英寸中的像素数,在DisplayMetrics类中,该密度值为dpi/160float density = GetSreenInfoActivity.this.getResources().getDisplayMetrics().density;// 屏幕密度(dpi):指每英寸中的像素数float densityDpi = GetSreenInfoActivity.this.getResources().getDisplayMetrics().densityDpi;densityText.setText(density + "");densityDpiText.setText(densityDpi + "");// 屏幕宽度(dip)int widthDip = pxToDip(GetSreenInfoActivity.this, widthPx);// 屏幕高度(dip)int heightDip = pxToDip(GetSreenInfoActivity.this, heightPx);widthDipText.setText(widthDip + "");heightDipText.setText(heightDip + "");}});}/** * px值向dip值转换 *  * @param context * @param pxValue * @return */private int pxToDip(Context context, float pxValue) {float scale = context.getResources().getDisplayMetrics().density;return (int) (pxValue / scale + 0.5f);}/** * dip值向px值转换 *  * @param context * @param dipValue * @return */public int dipToPx(Context context, float dipValue) {float scale = context.getResources().getDisplayMetrics().density;return (int) (dipValue * scale + 0.5f);}}
布局xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕密度:" />        <EditText            android:id="@+id/main_et_density"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕密度(dpi):" />        <EditText            android:id="@+id/main_et_density_dpi"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕宽度(px):" />        <EditText            android:id="@+id/main_et_width_px"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕高度(px):" />        <EditText            android:id="@+id/main_et_height_px"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕宽度(dip):" />        <EditText            android:id="@+id/main_et_width_dip"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="屏幕高度(dip):" />        <EditText            android:id="@+id/main_et_height_dip"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:editable="false"            android:singleLine="true" />    </LinearLayout>    <Button        android:id="@+id/main_btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="获取屏幕信息" /></LinearLayout>
附上图片效果:




更多相关文章

  1. activity 设置Theme.Dialog View高度
  2. Android实现网络加载图片点击大图后浏览可缩放
  3. Unity 实现Android不锁屏
  4. android 获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置
  5. 我的Android进阶之旅------>Android常用计量单位(Dimension)的介绍
  6. 安卓设备修改屏幕像素密度以及查看屏幕分辨率
  7. Google Analytics Advanced Configuration - Google Analytics
  8. android 视频播放 JiaoZiVideoPlayer使用分析
  9. Android(安卓)程式开发:(七)处理变化 —— 7.3 检测屏幕的方向

随机推荐

  1. 后续:优化
  2. android 调用第三方软件打开pdf文件
  3. android隐藏显示软键盘
  4. Travis CI android 持续集成
  5. android:xml解析
  6. Android WebView demo
  7. android 自定义dialog去掉白色背景
  8. Android 判断是都联网状态
  9. Android 文件读写的例子
  10. android开关按钮,Switch,ToggleButton,Radio