Commit b162c9b2 authored by kenan's avatar kenan

高度适配

parent ca18b39d
package cn.garymb.ygomobile; package cn.garymb.ygomobile;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.Point; import android.graphics.Point;
import android.os.Environment; import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.view.WindowManager; import android.view.WindowManager;
...@@ -14,7 +12,6 @@ import org.json.JSONArray; ...@@ -14,7 +12,6 @@ import org.json.JSONArray;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
...@@ -23,9 +20,7 @@ import java.util.Locale; ...@@ -23,9 +20,7 @@ import java.util.Locale;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.preference.PreferenceFragmentPlus; import cn.garymb.ygomobile.ui.preference.PreferenceFragmentPlus;
import cn.garymb.ygomobile.utils.DeckUtil; import cn.garymb.ygomobile.utils.DeckUtil;
import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.IOUtils; import cn.garymb.ygomobile.utils.IOUtils;
import cn.garymb.ygomobile.utils.SystemUtils;
import static cn.garymb.ygomobile.Constants.CORE_DECK_PATH; import static cn.garymb.ygomobile.Constants.CORE_DECK_PATH;
import static cn.garymb.ygomobile.Constants.CORE_EXPANSIONS; import static cn.garymb.ygomobile.Constants.CORE_EXPANSIONS;
...@@ -55,8 +50,9 @@ public class AppsSettings { ...@@ -55,8 +50,9 @@ public class AppsSettings {
private static AppsSettings sAppsSettings; private static AppsSettings sAppsSettings;
private Context context; private Context context;
private PreferenceFragmentPlus.SharedPreferencesPlus mSharedPreferences; private PreferenceFragmentPlus.SharedPreferencesPlus mSharedPreferences;
private float mScreenHeight, mScreenWidth, mDensity; private float mDensity;
private final Point mScreenSize = new Point();
private final Point mRealScreenSize = new Point();
private AppsSettings(Context context) { private AppsSettings(Context context) {
this.context = context; this.context = context;
...@@ -82,55 +78,11 @@ public class AppsSettings { ...@@ -82,55 +78,11 @@ public class AppsSettings {
public void update(Context context) { public void update(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Point size = new Point(); //应用尺寸
//真实宽高 wm.getDefaultDisplay().getSize(mScreenSize);
wm.getDefaultDisplay().getRealSize(size); //屏幕尺寸
wm.getDefaultDisplay().getRealSize(mRealScreenSize);
mDensity = context.getResources().getDisplayMetrics().density; mDensity = context.getResources().getDisplayMetrics().density;
mScreenHeight = size.y;
mScreenWidth = size.x;
if (isImmerSiveMode() && context instanceof Activity) {
DisplayMetrics dm = SystemUtils.getHasVirtualDisplayMetrics((Activity) context);
if (dm != null) {
int height = Math.max(dm.widthPixels, dm.heightPixels);
Log.e("YGOMobileLog", "类地址" + System.identityHashCode(this));
int notchHeight = getNotchHeight();
try {
FileLogUtil.writeAndTime("是否沉浸: " + isImmerSiveMode());
FileLogUtil.writeAndTime("原始长: " + mScreenHeight);
FileLogUtil.writeAndTime("原始宽: " + mScreenWidth);
FileLogUtil.writeAndTime("界面长: " + dm.heightPixels);
FileLogUtil.writeAndTime("界面宽: " + dm.widthPixels);
FileLogUtil.writeAndTime("刘海长: " + notchHeight);
} catch (IOException e) {
e.printStackTrace();
}
height -= notchHeight;
try {
FileLogUtil.writeAndTime("处理后height值: " + height);
} catch (IOException e) {
e.printStackTrace();
}
if (mScreenHeight > mScreenWidth) {
mScreenHeight = height;
} else {
mScreenWidth = height;
}
try {
FileLogUtil.writeAndTime("转换后长: " + mScreenHeight);
FileLogUtil.writeAndTime("转换后宽: " + mScreenWidth);
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }
public int getAppVersion() { public int getAppVersion() {
...@@ -141,17 +93,14 @@ public class AppsSettings { ...@@ -141,17 +93,14 @@ public class AppsSettings {
mSharedPreferences.putInt(PREF_VERSION, ver); mSharedPreferences.putInt(PREF_VERSION, ver);
} }
public PreferenceFragmentPlus.SharedPreferencesPlus getSharedPreferences() { public PreferenceFragmentPlus.SharedPreferencesPlus getSharedPreferences() {
return mSharedPreferences; return mSharedPreferences;
} }
public float getSmallerSize() { public float getSmallerSize() {
return mScreenHeight < mScreenWidth ? mScreenHeight : mScreenWidth; float w = getScreenWidth();
} float h = getScreenHeight();
return h < w ? h : w;
public float getScreenWidth() {
return Math.min(mScreenWidth, mScreenHeight);
} }
public boolean isDialogDelete() { public boolean isDialogDelete() {
...@@ -208,8 +157,33 @@ public class AppsSettings { ...@@ -208,8 +157,33 @@ public class AppsSettings {
return mSharedPreferences.getBoolean(PREF_KEEP_SCALE, DEF_PREF_KEEP_SCALE); return mSharedPreferences.getBoolean(PREF_KEEP_SCALE, DEF_PREF_KEEP_SCALE);
} }
public float getScreenWidth() {
int w, h;
if (isImmerSiveMode()) {
w = mRealScreenSize.x;
h = mRealScreenSize.y;
} else {
w = mScreenSize.x;
h = mScreenSize.y;
}
return Math.min(w, h);
}
public float getScreenHeight() { public float getScreenHeight() {
return Math.max(mScreenWidth, mScreenHeight); int w, h;
if (isImmerSiveMode()) {
w = mRealScreenSize.x;
h = mRealScreenSize.y;
} else {
w = mScreenSize.x;
h = mScreenSize.y;
}
int ret = Math.max(w, h);
if(isImmerSiveMode()){
//刘海高度
ret -= getNotchHeight();
}
return ret;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment