简单的Android 某个Activity pad适配

418 阅读1分钟

Activity#onCreate()中加入以下代码:

        if (pad) {
            int yourUIScreenWidth = 0;
            DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
            oldDensity = displayMetrics.density;
            destDensity = displayMetrics.widthPixels * oldDensity / yourUIScreenWidth;
            displayMetrics.density = destDensity;
        }

其中,yourUIScreenWidth是指UI图上给的宽度,例如360dp,算出来的destDensity如果感觉过大,可以乘以一个0到1的一个系数,例如0.8。

同时不要忘了在Activity#onResume()加入以下代码:

protected void onResume() {
       if (destDensity > 0) {
           getResources().getDisplayMetrics().density = destDensity;
       }
       super.onResume();
}

Activity#onPause()加入以下代码:

    protected void onPause() {
       if (oldDensity > 0) {
           // 恢复成原density, 避免影响其他页面
           getResources().getDisplayMetrics().density = oldDensity;
       }
       super.onPause();
   }