下面简要介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。...为了获取DisplayMetrics 成员,首先初始化一个对象如下: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager()....getDefaultDisplay().getMetrics; 注:构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity...的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素...通过 DisplayMetrics的 toString()方法可以获取到 DisplayMetrics的大部分 fields信息,如下是在分辨率为 480×320情况下的一些输出信息: 其中,density
displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics...); 然后 , 通过 WindowManager 实例获取 DisplayMetrics 示例对象 , 其中封装了设备真实的屏幕数据参数 ; 通过 DisplayMetrics # heightPixels...可以获取屏幕高度 , 通过 DisplayMetrics # widthPixels 可以获取屏幕宽度 ; DisplayMetrics displayMetrics = new DisplayMetrics...= displayMetrics.heightPixels; this.screenHeight = displayMetrics.widthPixels - statusBarHeight...displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics
displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getRealMetrics...(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); activity.getWindowManager...displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics...displayMetrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics...(displayMetrics); int realHeight = displayMetrics.heightPixels; return realHeight - usableHeight; } /
screenWidth=" + screenWidth + "; screenHeight=" + screenHeight); // 获取屏幕密度(方法2) DisplayMetrics...dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); float density =...", "xdpi=" + xdpi + "; ydpi=" + ydpi); Log.e(TAG + " DisplayMetrics", "density=" + density + ";...", "xdpi=" + xdpi + "; ydpi=" + ydpi); Log.e(TAG + " DisplayMetrics", "density=" + density + ";...仔细分析代码,发现问题出在代码: getWindowManager().getDefaultDisplay().getMetrics(dm) Initialize a DisplayMetrics object
int source) { Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), source); DisplayMetrics...displayMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay() .getMetrics...(displayMetrics); float scalew = (float) displayMetrics.widthPixels / (float) bitmap.getWidth()...); float ss = displayMetrics.heightPixels bitmap.getHeight() ?...displayMetrics.heightPixels : bitmap.getHeight(); image.setMaxWidth((int) ss); view.addView(image
displayMetrics; 首先使用WindowManager获取本机屏幕长宽,存放在displayMetrics.widthPixels 和 displayMetrics.heightPixels...= new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics); 而实际屏幕大小要减去状态栏高度...> displayMetrics.heightPixels) {//横屏 displayWidth = displayMetrics.heightPixels;...displayHeight = displayMetrics.widthPixels; } else { //竖屏 displayWidth = displayMetrics.widthPixels...= new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics);
val displayMetrics = LocalContext.current.resources.displayMetrics val fontScale = LocalDensity.current.fontScale...val widthPixels = displayMetrics.widthPixels val widthDensity = widthPixels / 817.0f CompositionLocalProvider...Configuration.ORIENTATION_LANDSCAPE val widthDp = if (isLandscape) 817.0f else 510.0f 上面的就可以改为 val displayMetrics...= LocalContext.current.resources.displayMetrics val fontScale = LocalDensity.current.fontScale val widthPixels...= LocalContext.current.resources.displayMetrics val fontScale = LocalDensity.current.fontScale val widthPixels
setDensity(Application application, AppCompatActivity activity) { //获取当前app的屏幕显示信息 DisplayMetrics...displayMetrics = application.getResources().getDisplayMetrics(); float appDensity = displayMetrics.density...; float appScaleDensity = displayMetrics.scaledDensity; //计算等比缩放后的density和scaleDensity...要计算的view为50%为540dp,假如设备的真实像素为10800×19200,density为1,根据上面的计算: float appDensity = displayMetrics.density...=1//真实屏幕密度 float targetDensity = displayMetrics.widthPixels / WIDTH=10800px/1080=10 //计算后的密度 因此使用了autoSize
dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.widthPixels; }...dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.heightPixels;...dm = new DisplayMetrics(); display.getRealMetrics(dm); screenHeight = dm.heightPixels;...dm = new DisplayMetrics(); display.getMetrics(dm); screenHeight = dm.heightPixels;...*/ public void getAppViewHeight(){ //屏幕 DisplayMetrics dm = new DisplayMetrics(); getWindowManager
方法 一 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); String...方法二 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getRealMetrics(dm)...上下文获取方法 DisplayMetrics dm = new DisplayMetrics(); WindowManager mWm = (WindowManager)getSystemService
获取屏幕尺寸 DisplayMetrics metrics = new DisplayMetrics(); Display display = getWindowManager().getDefaultDisplay...设置WallpaperManager适应屏幕尺寸 final DisplayMetrics metrics = Util.setWallpaperManagerFitScreen(ViewWallpaperActivity.this...setWallpaperManagerFitScreen(Activity context) { // 使桌面适应屏幕尺寸 DisplayMetrics metrics = new DisplayMetrics...ret = new DisplayMetrics(); ret.widthPixels = wallpaperManager.getDesiredMinimumWidth(); ret.heightPixels...*/ private static Bitmap cropCenter(Bitmap bitmap, DisplayMetrics screenMetrics) { int h1 = bitmap.getHeight
listener.onSoftKeyboardClosed(); } } } private static float dpToPx(Context context, float valueInDp) { DisplayMetrics...outMetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(outMetrics); return outMetrics.widthPixels...outMetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(outMetrics); return outMetrics.heightPixels...= null) { display = windowManager.getDefaultDisplay(); } DisplayMetrics displayMetrics = new DisplayMetrics...); method.invoke(display, displayMetrics); absoluteHeight = displayMetrics.heightPixels; } catch (Exception
绿色区域:屏幕区域 蓝色区域:状态栏区域 红色区域:标题栏区域 黄色区域:view绘制区域 1.Android手机屏幕的高度 整个手机使用发亮,不使用变黑的部分,绿色区域 获取屏幕的高度方法一 DisplayMetrics...dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Log.e("TAG", "...屏幕高:" + dm.heightPixels); 获取屏幕的高度方法二 DisplayMetrics displayMetrics = getResources().getDisplayMetrics...(); Log.e("TAG","screenHeight"+displayMetrics.heightPixels); 2.Android手机状态栏的高度(蓝色区域) 状态栏指的是,手机最上方显示...dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); //应用区域 Rect
通过阅读源码,我们可以得知,density 是 DisplayMetrics 中的成员变量,而 DisplayMetrics 实例通过 Resources#getDisplayMetrics 可以获得,...先来熟悉下 DisplayMetrics 中和适配相关的几个变量: DisplayMetrics#density 就是上述的density。...DisplayMetrics#densityDpi 就是上述的dpi。...当然还有些其他dp转换的场景,基本都是通过 DisplayMetrics 来计算的,这里不再详述。...,将DisplayMetrics#scaledDensity和DisplayMetrics#density设置为同样的值,从而某些用户在系统中修改了字体大小失效了,但是我们还不能直接用原始的scaledDensity
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics...outMetrics = new DisplayMetrics(); manager.getDefaultDisplay().getMetrics(outMetrics);...WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics...outMetrics = new DisplayMetrics(); manager.getDefaultDisplay().getMetrics(outMetrics);
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics...displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics...> displayMetrics.heightPixels){ // 宽度大于高度说明是横屏状态, 状态栏在左侧或者右侧 this.screenWidth...= displayMetrics.heightPixels; this.screenHeight = displayMetrics.widthPixels - statusBarHeight...; this.screenHeight = displayMetrics.heightPixels - statusBarHeight; }
package com.twy.test; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics...findViewById(R.id.imageView1); img2 = (ImageView) findViewById(R.id.imageView2); DisplayMetrics...DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。...为了获取DisplayMetrics 成员,首先初始化一个对象如下: Java代码 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager...getWindowManager() 获取显示定制窗口的管理器 //getDefaultDisplay() 获取默认显示Display对象 //getMetrics(dm) 通过Display对象的数据来初始化一个DisplayMetrics
android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.DisplayMetrics...RelativeLayout.ALIGN_PARENT_RIGHT); //为VideoView添加属性 videoView.setLayoutParams(LayoutParams); } else { //窗口模式 //获取整个屏幕的宽高 DisplayMetrics...DisplayMetrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(DisplayMetrics...); //设置窗口模式距离边框50 int videoHeight = DisplayMetrics.heightPixels; int videoWidth = DisplayMetrics.widthPixels
private Point getDisplay(MainActivity context) { DisplayMetrics metrics = new DisplayMetrics(); Display...display = context.getWindowManager().getDefaultDisplay(); display.getMetrics(metrics); DisplayMetrics...dm = new DisplayMetrics(); @SuppressWarnings("rawtypes") Class c; try { c = Class.forName(...android.view.Display"); @SuppressWarnings("unchecked") Method method = c.getMethod("getRealMetrics", DisplayMetrics.class
通过applyDimension方法中dp转换: public static float applyDimension(int unit, float value,DisplayMetrics metrics...类的成员变量,如图所示: 而DisplayMetrics实例可以通过系统资源文件Resources类中的getDisplayMetrics方法获得,系统资源文件Resouces也可以通过Activity...或者Application的Context获得: DisplayMetrics displayMetrics = this.getResources().getDisplayMetrics(); 然后就可以通过...DisplayMetrics实例,修改density值啦,这里需要注意有个scaledDensity变量的影响,这个变量是字体的缩放因子,正常情况下和density相等,但是调节系统字体大小后会改变这个值...DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics(); if
领取专属 10元无门槛券
手把手带您无忧上云