android中获取屏幕相关信息
来源:互联网 发布:矩阵逆matlab 编辑:程序博客网 时间:2024/06/05 00:59
在实际应用中经常要获取屏幕的相关信息,比如高度、宽度、密度以及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 {
- @Override
- protected 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() {
- @Override
- public 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/160
- float 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);
- }
- }
- <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>
- android中获取屏幕相关信息
- android中获取屏幕相关信息
- Android 获取屏幕相关信息
- android获取屏幕相关信息
- 获取屏幕相关信息
- 获取屏幕相关信息
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- 获取屏幕android屏幕信息
- android获取屏幕信息
- Android 获取屏幕信息
- Android 获取屏幕信息
- android 获取屏幕信息
- android获取屏幕信息
- 用keil写程序时出现“C(162): error C249: 'DATA': SEGMENT TOO LARGE“的错误
- net4.0安装失败
- CUDA: Wizard环境下CUDA DLL开发流程
- mysql update select 问题
- hive分区
- android中获取屏幕相关信息
- 旅行,写作,编程......coder or coding....
- c++中string类的详解
- HTTP 错误 500.21 - Internal Server Error
- 2014--m美团网笔试总结
- 没有按照正常的先装iis后装.net的顺序
- Codeforces Round #205 (Div. 2) B. Two Heaps
- jquery的extend和fn.extend
- ios开发数组排序(数组中包括字典)