Android获取手机的屏幕分辨率和密度
2015-03-04 10:14
483 查看
关于手机屏幕尺寸和适应性在上一篇已经讲到,这里只是负责给出代码,获得屏幕正确的分辨率。
XML文件
<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.displaymetricsdemo.MainActivity" >
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</span>
Activity代码
<span style="font-size:18px;">package com.example.displaymetricsdemo;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取手机屏幕密度
DisplayMetrics displayMetrics = new DisplayMetrics();
// 获取手机窗口的Display来初始化DisplayMetrics对象
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// 得到屏幕的宽高信息
// 获取手机的屏幕密度
float density = displayMetrics.density;
// 获取手机屏幕密度Dpi
int densityDpi = displayMetrics.densityDpi;
String showMessage = "手机屏幕分辨率: " + displayMetrics.widthPixels + " * "
+ displayMetrics.heightPixels + "\n手机屏幕密度: " + density
+ "\n手机屏幕密度Dpi: " + densityDpi;
show = (TextView) findViewById(R.id.show);
show.setTextSize(20);
show.setText(showMessage);
}
}</span>
要想在一个低密度的手机上仅仅写出上面的代码获取的手机屏幕分辨率是有一定的误差的。若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸。所以我们还需要在AndroidManifest.xml文件中添加如下代码。
<span style="font-size:18px;"> <supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true"/></span>
XML文件
<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.displaymetricsdemo.MainActivity" >
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</span>
Activity代码
<span style="font-size:18px;">package com.example.displaymetricsdemo;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取手机屏幕密度
DisplayMetrics displayMetrics = new DisplayMetrics();
// 获取手机窗口的Display来初始化DisplayMetrics对象
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// 得到屏幕的宽高信息
// 获取手机的屏幕密度
float density = displayMetrics.density;
// 获取手机屏幕密度Dpi
int densityDpi = displayMetrics.densityDpi;
String showMessage = "手机屏幕分辨率: " + displayMetrics.widthPixels + " * "
+ displayMetrics.heightPixels + "\n手机屏幕密度: " + density
+ "\n手机屏幕密度Dpi: " + densityDpi;
show = (TextView) findViewById(R.id.show);
show.setTextSize(20);
show.setText(showMessage);
}
}</span>
要想在一个低密度的手机上仅仅写出上面的代码获取的手机屏幕分辨率是有一定的误差的。若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸。所以我们还需要在AndroidManifest.xml文件中添加如下代码。
<span style="font-size:18px;"> <supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true"/></span>
相关文章推荐
- [android基础]怎样获取Android手机屏幕的大小、分辨率、密度
- Android开发之如何获取Android手机屏幕的大小(分辨率、密度)
- 怎样获取Android手机屏幕的大小(分辨率、密度)
- Android开发之如何获取Android手机屏幕的大小(分辨率、密度)
- android手机Android屏幕分辨率、密度的正确获取
- android中的长度单位,dip、dp、px、sp及获取屏幕分辨率和密度
- ****android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- Android使用Displaymetrics类获取一下手机屏幕中的一些信息,获取屏幕分辨率
- android 获取手机屏幕分辨率
- android获取手机屏幕的宽高,水平,竖直方向的分辨率,测试手机属于哪种分辨率
- android获取屏幕尺寸、密度(判断手机屏幕类型)
- android获取屏幕尺寸、密度(判断手机屏幕类型)
- Android手机获取屏幕分辨率
- android获取手机屏幕分辨率
- 【分辨率】Android 获取屏幕尺寸与密度
- robotium测试时获取Android手机屏幕的分辨率大小
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- 获取手机屏幕大小、密度、分辨率、状态栏、标题栏高度
- android 获取手机屏幕分辨率和setRequestedOrientation设置屏幕方向
- 正确获取android手机屏幕分辨率