Android 화면 해상도 도구 클래스 사용 설명
package com.per.loadingwebviewdome;
import android.content.Context;
import android.util.DisplayMetrics;
import java.lang.reflect.Field;
/**
* @author: xiaolijuan
* @description:
* @date: 2016-06-05
* @time: 22:55
*/
public class ScreenUtil {
/**
* dp px
*/
public static int dip2px(Context mContext, float dpValue) {
final float scale = mContext.getResources()
.getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* px( ) dp
*/
public static int px2dip(Context mContext, float pxValue) {
final float scale = mContext.getResources()
.getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
*
*
* @param mContext
* @return
*/
private static int[] getScreenSize(Context mContext) {
DisplayMetrics dm = mContext
.getResources().getDisplayMetrics();
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;
return new int[]{screenWidth, screenHeight};
}
/**
*
*
* @param mContext
* @return
*/
public static int getStatusBarHeight(Context mContext) {
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, statusBarHeight = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
statusBarHeight = mContext.getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
e1.printStackTrace();
}
return statusBarHeight;
}
/**
*
*
* @param mContext
* @return
*/
public static int getScreenWidth(Context mContext) {
int screen[] = getScreenSize(mContext);
return screen[0];
}
/**
*
*
* @param mContext
* @return
*/
public static int getScreenHeight(Context mContext) {
int screen[] = getScreenSize(mContext);
return screen[1];
}
}
dip,dp,px 와 sp 에 대해 이전에 잘 이해 하지 못 했 던 것 은 dip 와 px 간 의 차이 입 니 다.우 리 는 구 글 의 추천 을 알 고 있 습 니 다.픽 셀 은 dip 를 통일 적 으로 사용 하고 글꼴 은 sp 를 통일 적 으로 사용 합 니 다.다음은 구체 적 으로 설명 하 겠 습 니 다.1.dip:device independent pixels(장치 독립 픽 셀):장치 마다 디 스 플레이 효과 가 다 릅 니 다.dip 는 화면 밀도 와 관련 이 있 고 화면 밀 도 는 장치 하드웨어 와 관련 이 있 습 니 다.일반적으로 저 희 는 WVGA,HVGA,QVGA 를 지원 하기 위해 이 걸 추천 합 니 다.픽 셀 에 의존 하지 않 습 니 다.dip 의 환산:dip(value)=(int)(px(value)/1.5+0.5)
2.dp:dip 와 똑 같 습 니 다.이름 만 다 를 뿐 입 니 다.
3.px:pixels(픽 셀),절대 픽 셀,서로 다른 장치 의 디 스 플레이 디 스 플레이 효 과 는 같 습 니 다.이것 은 얼마 면 영원히 변 하지 않 습 니 다.
4.sp:scaled pixels(픽 셀 확대).주로 글꼴 표시 에 사 용 됩 니 다.
위 에 있 는 화면 도구 종 류 를 참조 하 십시오.
Log.e(" ", String.valueOf(ScreenUtil.getStatusBarHeight(mContext)));
Log.e(" ", String.valueOf(ScreenUtil.getScreenWidth(mContext)));
Log.e(" ", String.valueOf(ScreenUtil.getScreenHeight(mContext)));
다음은 인쇄 된 로그 입 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.