提交 4325a429 编写于 作者: J jackjintai

modify:

1、兼容Android Q的取色器
上级 2b6dc906
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
android:enabled="true" android:enabled="true"
android:process=":remote" /> android:process=":remote" />
<!-- Dokit Android Q截屏前台服务--> <!-- Dokit targetApi为 29 Android Q时截屏的前台服务-->
<service <service
android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService" android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService"
android:enabled="true" android:enabled="true"
......
...@@ -13,7 +13,7 @@ ext { ...@@ -13,7 +13,7 @@ ext {
suppotrSdkVersion : "27.1.1", suppotrSdkVersion : "27.1.1",
applicationId : "com.didichuxing.doraemondemo", applicationId : "com.didichuxing.doraemondemo",
minSdkVersion : 16, minSdkVersion : 16,
targetSdkVersion : 28, targetSdkVersion : 29,
//app版本号 //app版本号
versionCode : 224, versionCode : 224,
//dokit 插件版本号 //dokit 插件版本号
......
...@@ -136,7 +136,7 @@ public class DataPickManager { ...@@ -136,7 +136,7 @@ public class DataPickManager {
*/ */
private void realPost(final int from, String content) { private void realPost(final int from, String content) {
LogHelper.i(TAG, "====realPost======"); LogHelper.i(TAG, "====realPost======");
OkGo.<String>post("") OkGo.<String>post("https://m.baidu.com/")
.params("productId", DokitConstant.PRODUCT_ID) .params("productId", DokitConstant.PRODUCT_ID)
.params("content", content) .params("content", content)
.execute(new StringCallback() { .execute(new StringCallback() {
......
...@@ -46,13 +46,12 @@ public class AlignRulerInfoDokitView extends AbsDokitView implements AlignRulerM ...@@ -46,13 +46,12 @@ public class AlignRulerInfoDokitView extends AbsDokitView implements AlignRulerM
} }
@Override @Override
public void initDokitViewLayoutParams(DokitViewLayoutParams params) { public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.width = getScreenShortSideLength(); params.width = getScreenShortSideLength();
params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.x = 0; params.x = 0;
params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(getContext(), 95); params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(95);
} }
@Override @Override
......
package com.didichuxing.doraemonkit.kit.colorpick; package com.didichuxing.doraemonkit.kit.colorpick;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Build; import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.RequiresApi; import android.support.annotation.RequiresApi;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -15,10 +11,8 @@ import android.view.WindowManager; ...@@ -15,10 +11,8 @@ import android.view.WindowManager;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.ActivityUtils;
import com.didichuxing.doraemonkit.DoraemonKit;
import com.didichuxing.doraemonkit.R; import com.didichuxing.doraemonkit.R;
import com.didichuxing.doraemonkit.ui.base.AbsDokitView; import com.didichuxing.doraemonkit.ui.base.AbsDokitView;
import com.didichuxing.doraemonkit.ui.base.DokitIntent;
import com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams; import com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams;
import com.didichuxing.doraemonkit.ui.base.DokitViewManager; import com.didichuxing.doraemonkit.ui.base.DokitViewManager;
import com.didichuxing.doraemonkit.ui.colorpicker.ColorPickerView; import com.didichuxing.doraemonkit.ui.colorpicker.ColorPickerView;
...@@ -31,7 +25,6 @@ import com.didichuxing.doraemonkit.util.UIUtils; ...@@ -31,7 +25,6 @@ import com.didichuxing.doraemonkit.util.UIUtils;
*/ */
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class ColorPickerDokitView extends AbsDokitView { public class ColorPickerDokitView extends AbsDokitView {
private static final String TAG = "ColorPickerFloatPage";
private ImageCapture mImageCapture; private ImageCapture mImageCapture;
private ColorPickerView mPickerView; private ColorPickerView mPickerView;
...@@ -56,7 +49,7 @@ public class ColorPickerDokitView extends AbsDokitView { ...@@ -56,7 +49,7 @@ public class ColorPickerDokitView extends AbsDokitView {
* 当服务准备好 * 当服务准备好
*/ */
void onScreenServiceReady() { void onScreenServiceReady() {
mImageCapture.initImageRead(getActivity(), ColorPickManager.getInstance().getMediaProjection()); mImageCapture.initImageRead(ColorPickManager.getInstance().getMediaProjection());
} }
...@@ -123,18 +116,24 @@ public class ColorPickerDokitView extends AbsDokitView { ...@@ -123,18 +116,24 @@ public class ColorPickerDokitView extends AbsDokitView {
mInfoDokitView.showInfo(colorInt, startX, startY); mInfoDokitView.showInfo(colorInt, startX, startY);
} }
/**
* 捕捉截图信息
*/
private void captureInfo(int delay) { private void captureInfo(int delay) {
getRootView().setVisibility(View.GONE); //先隐藏拾色器控件 否则会把拾色器也截图进去
mPickerView.setVisibility(View.INVISIBLE);
getRootView().postDelayed(new Runnable() { getRootView().postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
mImageCapture.capture(); mImageCapture.capture();
getRootView().setVisibility(View.VISIBLE); //截图完成以后恢复
mPickerView.setVisibility(View.VISIBLE);
showInfo(); showInfo();
} }
}, delay); }, delay);
} }
@Override @Override
public void onDown(int x, int y) { public void onDown(int x, int y) {
super.onDown(x, y); super.onDown(x, y);
......
...@@ -43,7 +43,7 @@ public class ColorPickerInfoDokitView extends AbsDokitView { ...@@ -43,7 +43,7 @@ public class ColorPickerInfoDokitView extends AbsDokitView {
params.width = getScreenShortSideLength(); params.width = getScreenShortSideLength();
params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.x = 0; params.x = 0;
params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(getContext(), 95); params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(95);
} }
@Override @Override
......
...@@ -16,6 +16,7 @@ import android.nfc.Tag; ...@@ -16,6 +16,7 @@ import android.nfc.Tag;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.RequiresApi; import android.support.annotation.RequiresApi;
import android.view.View;
import com.blankj.utilcode.util.AppUtils; import com.blankj.utilcode.util.AppUtils;
import com.didichuxing.doraemonkit.DoraemonKit; import com.didichuxing.doraemonkit.DoraemonKit;
...@@ -36,9 +37,11 @@ public class ImageCapture { ...@@ -36,9 +37,11 @@ public class ImageCapture {
private ImageReader mImageReader; private ImageReader mImageReader;
private boolean isCapturing; private boolean isCapturing;
private Bitmap mBitmap; private Bitmap mBitmap;
private ColorPickerDokitView mColorPickerDokitView;
public void init(Context context, Bundle bundle, ColorPickerDokitView colorPickerDokitView) throws Exception { public void init(Context context, Bundle bundle, ColorPickerDokitView colorPickerDokitView) throws Exception {
this.mColorPickerDokitView = colorPickerDokitView;
PackageManager packageManager = DoraemonKit.APPLICATION.getPackageManager(); PackageManager packageManager = DoraemonKit.APPLICATION.getPackageManager();
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(AppUtils.getAppPackageName(), 0); ApplicationInfo applicationInfo = packageManager.getApplicationInfo(AppUtils.getAppPackageName(), 0);
//适配Android Q //适配Android Q
...@@ -46,25 +49,29 @@ public class ImageCapture { ...@@ -46,25 +49,29 @@ public class ImageCapture {
if (ColorPickManager.getInstance().getMediaProjection() != null) { if (ColorPickManager.getInstance().getMediaProjection() != null) {
colorPickerDokitView.onScreenServiceReady(); colorPickerDokitView.onScreenServiceReady();
} else { } else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { try {
Intent intent = new Intent(context, ScreenRecorderService.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent.putExtra("data", bundle.getParcelable("data")); Intent intent = new Intent(context, ScreenRecorderService.class);
context.startForegroundService(intent); intent.putExtra("data", bundle.getParcelable("data"));
context.startForegroundService(intent);
}
} catch (Exception e) {
e.printStackTrace();
} }
} }
} else { } else {
mMediaProjectionManager = (MediaProjectionManager) context.getSystemService(Context.MEDIA_PROJECTION_SERVICE); mMediaProjectionManager = (MediaProjectionManager) context.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
if (mMediaProjectionManager != null) { if (mMediaProjectionManager != null) {
mMediaProjection = mMediaProjectionManager.getMediaProjection(Activity.RESULT_OK, (Intent) bundle.getParcelable("data")); mMediaProjection = mMediaProjectionManager.getMediaProjection(Activity.RESULT_OK, (Intent) bundle.getParcelable("data"));
initImageRead(context, mMediaProjection); initImageRead(mMediaProjection);
} }
} }
} }
/** /**
* @param context *
*/ */
void initImageRead(Context context, MediaProjection mediaProjection) { void initImageRead(MediaProjection mediaProjection) {
if (mediaProjection == null) { if (mediaProjection == null) {
LogHelper.e(TAG, "mediaProjection == null"); LogHelper.e(TAG, "mediaProjection == null");
return; return;
...@@ -73,7 +80,9 @@ public class ImageCapture { ...@@ -73,7 +80,9 @@ public class ImageCapture {
int height = UIUtils.getRealHeightPixels(); int height = UIUtils.getRealHeightPixels();
int dpi = UIUtils.getDensityDpi(); int dpi = UIUtils.getDensityDpi();
mImageReader = ImageReader.newInstance(width, height, PixelFormat.RGBA_8888, 2); mImageReader = ImageReader.newInstance(width, height, PixelFormat.RGBA_8888, 2);
/**
* 获取getSurface
*/
mediaProjection.createVirtualDisplay("ScreenCapture", mediaProjection.createVirtualDisplay("ScreenCapture",
width, height, dpi, width, height, dpi,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
......
...@@ -75,8 +75,8 @@ public class RealTimePerformDataDokitView extends AbsDokitView { ...@@ -75,8 +75,8 @@ public class RealTimePerformDataDokitView extends AbsDokitView {
public void initDokitViewLayoutParams(DokitViewLayoutParams params) { public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.width = DokitViewLayoutParams.WRAP_CONTENT; params.width = DokitViewLayoutParams.WRAP_CONTENT;
params.height = DokitViewLayoutParams.WRAP_CONTENT; params.height = DokitViewLayoutParams.WRAP_CONTENT;
params.x = UIUtils.dp2px(getContext(), 30); params.x = UIUtils.dp2px(30);
params.y = UIUtils.dp2px(getContext(), 30); params.y = UIUtils.dp2px(30);
} }
@Override @Override
......
...@@ -148,7 +148,7 @@ public class LayoutLevelDokitView extends AbsDokitView { ...@@ -148,7 +148,7 @@ public class LayoutLevelDokitView extends AbsDokitView {
public void initDokitViewLayoutParams(DokitViewLayoutParams params) { public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.gravity = Gravity.CENTER_HORIZONTAL; params.gravity = Gravity.CENTER_HORIZONTAL;
params.x = 0; params.x = 0;
params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(getContext(), 125); params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(125);
//解决页面跳转是view的宽度会发生变化 //解决页面跳转是view的宽度会发生变化
params.width = getScreenShortSideLength(); params.width = getScreenShortSideLength();
params.height = DokitViewLayoutParams.WRAP_CONTENT; params.height = DokitViewLayoutParams.WRAP_CONTENT;
......
...@@ -94,7 +94,7 @@ public class SysInfoFragment extends BaseFragment { ...@@ -94,7 +94,7 @@ public class SysInfoFragment extends BaseFragment {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_ext_storage_free), DeviceUtils.getSDCardSpace(getContext()))); sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_ext_storage_free), DeviceUtils.getSDCardSpace(getContext())));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_rom_free), DeviceUtils.getRomSpace(getContext()))); sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_rom_free), DeviceUtils.getRomSpace(getContext())));
sysInfoItems.add(new SysInfoItem("ROOT", String.valueOf(DeviceUtils.isRoot(getContext())))); sysInfoItems.add(new SysInfoItem("ROOT", String.valueOf(DeviceUtils.isRoot(getContext()))));
sysInfoItems.add(new SysInfoItem("DENSITY", String.valueOf(UIUtils.getDensity(getContext())))); sysInfoItems.add(new SysInfoItem("DENSITY", String.valueOf(UIUtils.getDensity())));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_size), UIUtils.getWidthPixels() + "x" + UIUtils.getRealHeightPixels())); sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_size), UIUtils.getWidthPixels() + "x" + UIUtils.getRealHeightPixels()));
} }
......
...@@ -57,8 +57,8 @@ public class TimeCounterDokitView extends AbsDokitView { ...@@ -57,8 +57,8 @@ public class TimeCounterDokitView extends AbsDokitView {
public void initDokitViewLayoutParams(DokitViewLayoutParams params) { public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.width = DokitViewLayoutParams.WRAP_CONTENT; params.width = DokitViewLayoutParams.WRAP_CONTENT;
params.height = DokitViewLayoutParams.WRAP_CONTENT; params.height = DokitViewLayoutParams.WRAP_CONTENT;
params.x = UIUtils.dp2px(getContext(), 30); params.x = UIUtils.dp2px(30);
params.y = UIUtils.dp2px(getContext(), 30); params.y = UIUtils.dp2px(30);
} }
@Override @Override
......
...@@ -93,7 +93,7 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ...@@ -93,7 +93,7 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements
public void initDokitViewLayoutParams(DokitViewLayoutParams params) { public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.flags = DokitViewLayoutParams.FLAG_NOT_FOCUSABLE; params.flags = DokitViewLayoutParams.FLAG_NOT_FOCUSABLE;
params.x = 0; params.x = 0;
params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(getContext(), 185); params.y = UIUtils.getHeightPixels() - UIUtils.dp2px(185);
params.width = getScreenShortSideLength(); params.width = getScreenShortSideLength();
params.height = DokitViewLayoutParams.WRAP_CONTENT; params.height = DokitViewLayoutParams.WRAP_CONTENT;
} }
......
...@@ -26,6 +26,7 @@ import com.blankj.utilcode.util.ScreenUtils; ...@@ -26,6 +26,7 @@ import com.blankj.utilcode.util.ScreenUtils;
import com.didichuxing.doraemonkit.constant.DokitConstant; import com.didichuxing.doraemonkit.constant.DokitConstant;
import com.didichuxing.doraemonkit.config.FloatIconConfig; import com.didichuxing.doraemonkit.config.FloatIconConfig;
import com.didichuxing.doraemonkit.ui.main.MainIconDokitView; import com.didichuxing.doraemonkit.ui.main.MainIconDokitView;
import com.didichuxing.doraemonkit.util.LogHelper;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
...@@ -188,6 +189,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent ...@@ -188,6 +189,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
onSystemLayoutParamsCreated(mWindowLayoutParams); onSystemLayoutParamsCreated(mWindowLayoutParams);
} }
} catch (Exception e) { } catch (Exception e) {
LogHelper.e(TAG, "e===>" + e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
...@@ -452,8 +454,14 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent ...@@ -452,8 +454,14 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
} }
/**
* 不能在改方法中进行dokitview的添加和删除 因为处于遍历过程在
* 只有系统模式下才会调用
* @param dokitView
*/
@Override @Override
public void onDokitViewAdd(AbsDokitView page) { public void onDokitViewAdd(AbsDokitView dokitView) {
} }
......
...@@ -34,7 +34,7 @@ public class TouchProxy { ...@@ -34,7 +34,7 @@ public class TouchProxy {
} }
public boolean onTouchEvent(View v, MotionEvent event) { public boolean onTouchEvent(View v, MotionEvent event) {
int distance = UIUtils.dp2px(v.getContext(), 1) * MIN_DISTANCE_MOVE; int distance = UIUtils.dp2px(1) * MIN_DISTANCE_MOVE;
int x = (int) event.getRawX(); int x = (int) event.getRawX();
int y = (int) event.getRawY(); int y = (int) event.getRawY();
switch (event.getAction()) { switch (event.getAction()) {
......
...@@ -204,7 +204,7 @@ public class PieChart extends View { ...@@ -204,7 +204,7 @@ public class PieChart extends View {
* @param space * @param space
*/ */
public void setSliceSpace(float space) { public void setSliceSpace(float space) {
mSliceSpace = UIUtils.dp2px(getContext(), space); mSliceSpace = UIUtils.dp2px(space);
} }
/** /**
...@@ -213,7 +213,7 @@ public class PieChart extends View { ...@@ -213,7 +213,7 @@ public class PieChart extends View {
* @param ringWidth * @param ringWidth
*/ */
public void setRingWidth(float ringWidth) { public void setRingWidth(float ringWidth) {
mRingWidth = UIUtils.dp2px(getContext(), ringWidth); mRingWidth = UIUtils.dp2px(ringWidth);
} }
/** /**
......
package com.didichuxing.doraemonkit.ui.kit; package com.didichuxing.doraemonkit.ui.kit;
import android.content.Context; import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.blankj.utilcode.util.LogUtils;
import com.didichuxing.doraemonkit.R; import com.didichuxing.doraemonkit.R;
import com.didichuxing.doraemonkit.datapick.DataPickManager; import com.didichuxing.doraemonkit.datapick.DataPickManager;
import com.didichuxing.doraemonkit.ui.base.DokitViewManager; import com.didichuxing.doraemonkit.ui.base.DokitViewManager;
......
...@@ -35,7 +35,7 @@ public class MainIconDokitView extends AbsDokitView { ...@@ -35,7 +35,7 @@ public class MainIconDokitView extends AbsDokitView {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
//统计入口 //统计入口
DataPickManager.getInstance().addData("click",1,"mainIcon"); DataPickManager.getInstance().addData("click", 1, "mainIcon");
DokitIntent dokitViewIntent = new DokitIntent(ToolPanelDokitView.class); DokitIntent dokitViewIntent = new DokitIntent(ToolPanelDokitView.class);
dokitViewIntent.mode = DokitIntent.MODE_SINGLE_INSTANCE; dokitViewIntent.mode = DokitIntent.MODE_SINGLE_INSTANCE;
DokitViewManager.getInstance().attach(dokitViewIntent); DokitViewManager.getInstance().attach(dokitViewIntent);
...@@ -59,16 +59,6 @@ public class MainIconDokitView extends AbsDokitView { ...@@ -59,16 +59,6 @@ public class MainIconDokitView extends AbsDokitView {
params.height = FLOAT_SIZE; params.height = FLOAT_SIZE;
} }
@Override
public void onDokitViewAdd(AbsDokitView dokitView) {
if (dokitView == this) {
return;
}
DokitViewManager.getInstance().detach(this);
DokitIntent intent = new DokitIntent(MainIconDokitView.class);
intent.mode = DokitIntent.MODE_SINGLE_INSTANCE;
DokitViewManager.getInstance().attach(intent);
}
@Override @Override
public void onResume() { public void onResume() {
......
...@@ -54,7 +54,7 @@ public class LineRender { ...@@ -54,7 +54,7 @@ public class LineRender {
public LineRender(Context context) { public LineRender(Context context) {
mContext = context; mContext = context;
mPaddingBottom = UIUtils.dp2px(context, 2); mPaddingBottom = UIUtils.dp2px(2);
} }
......
...@@ -235,7 +235,7 @@ public class MyVideoView extends RelativeLayout { ...@@ -235,7 +235,7 @@ public class MyVideoView extends RelativeLayout {
isVerticalScreen = true; isVerticalScreen = true;
ivVolume.setVisibility(View.GONE); ivVolume.setVisibility(View.GONE);
seekbarVolume.setVisibility(View.GONE); seekbarVolume.setVisibility(View.GONE);
setVideoViewScale(ViewGroup.LayoutParams.MATCH_PARENT, UIUtils.dp2px(mContext, 290)); setVideoViewScale(ViewGroup.LayoutParams.MATCH_PARENT, UIUtils.dp2px(290));
mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
} else { } else {
......
...@@ -30,19 +30,19 @@ import java.security.PublicKey; ...@@ -30,19 +30,19 @@ import java.security.PublicKey;
public class UIUtils { public class UIUtils {
private static final String TAG = "UIUtils"; private static final String TAG = "UIUtils";
public static int dp2px(Context context, float dpValue) { public static int dp2px(float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density; final float scale = DoraemonKit.APPLICATION.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f); return (int) (dpValue * scale + 0.5f);
} }
public static float px2dp(Context context, int px) { public static float px2dp(int px) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); DisplayMetrics displayMetrics = DoraemonKit.APPLICATION.getResources().getDisplayMetrics();
return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
} }
public static float getDensity(Context context) { public static float getDensity() {
DisplayMetrics metrics = new DisplayMetrics(); DisplayMetrics metrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); WindowManager windowManager = (WindowManager) DoraemonKit.APPLICATION.getSystemService(Context.WINDOW_SERVICE);
if (windowManager == null) { if (windowManager == null) {
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册