开发者都希望自己的app都适应不同屏幕大小的手机,开发时则尽量不要把一些坐标都设置为定值,而是通过计算得出。
计算坐标就需要一个参考值,最好的参考值就是屏幕的宽度和高度。
安卓中的DisplayMetrics定义了屏幕的一些属性,可以通过getMetrics方法得到当前屏幕的DisplayMetrics属性,从而取得屏幕的宽和高。
public class Activity01 extends AppCompatActivity
{
TextView mTextView = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_01);
//定义DisplayMetrics对象
DisplayMetrics dm = new DisplayMetrics();
//取得窗口属性
getWindowManager().getDefaultDisplay().getMetrics(dm);
//窗口的宽度,高度
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;
mTextView = (TextView)findViewById(R.id.TextView01);
mTextView.setText("屏幕宽度:" + screenWidth + "\n屏幕高度: " + screenHeight);
}
}
顺带一提的就是,加速感应器可以让应用程序自动适应屏幕的模式,比如横放时自动变成横向模式。
直接在AndroidManifest.xml中修改
<activity android:name=".Activity01" android:screenOrientation="sensor">即可!