该程序可以测试出个人手机设备的分辨率,属于哪种dpi级别,以便开发参考。
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/screenSize" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/screenSize" /> <EditText android:id="@+id/size" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" /> <Button android:id="@+id/submit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/submit" /> <EditText android:id="@+id/showWidth" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="text" android:editable="false" /> <EditText android:id="@+id/showDPI" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="text" android:editable="false" /> </LinearLayout>
string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, AndroidDPI!</string> <string name="app_name">AndroidDPI</string> <string name="screenSize">输入该设备的屏幕大小:</string> <string name="submit">确认</string> </resources>
Java代码:
package com.shine.android; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class AndroidDPI extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText size = (EditText) findViewById(R.id.size); final EditText showWidth = (EditText) findViewById(R.id.showWidth); final EditText showDPI = (EditText) findViewById(R.id.showDPI); Button submit = (Button) findViewById(R.id.submit); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(size.length() == 0){ size.setText("请输入该屏幕的尺寸"); }else { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int height =dm.heightPixels; float sizeInt = Float.parseFloat(size.getText().toString()); showWidth.setText("手机屏幕分辨率为:"+width+"*"+height); double dpi = Math.sqrt(height*height +width*width)/sizeInt; String dpiType = ""; if(dpi >320){ dpiType = "属于xhdpi"; }else if(dpi>240){ dpiType = "属于hdpi"; }else if(dpi>160){ dpiType = "属于mdpi"; }else if(dpi>120){ dpiType = "属于ldpi"; } showDPI.setText("手机DPI是:"+ dpi+ ","+ dpiType); } } }); } }显示结果: