Android dip,px,pt,sp의 차이점 상세 설명
바이트는 sp를 단위로 하는 것이 가장 좋고 TextView의 원본 코드를 보면 Android가 기본적으로 sp를 바이트 단위로 사용한다는 것을 알 수 있다.
Android에서 1pt는 대략 2.22sp 이상으로 참고할 수 있으며, UI가 sp 단위로 디자인을 제공할 수 있다면 가장 좋고, 디자인에 sp의 개념이 없다면 개발자도 적당한 환산을 통해 근사치를 얻을 수 있다.
과거에 프로그래머는 일반적으로 픽셀 단위로 컴퓨터 사용자 인터페이스를 설계했다.예를 들어, 열 사이의 간격은 5픽셀이고 아이콘 크기는 16픽셀인 300픽셀 양식 필드를 정의합니다.×16픽셀 등.이렇게 처리하는 문제는 인치당 포인트 (dpi) 가 더 높은 새 모니터에서 프로그램을 실행하면 사용자 인터페이스가 매우 작아 보인다는 것이다.어떤 경우 사용자 인터페이스는 내용을 똑똑히 보기 어려울 정도로 작을 수도 있다.해상도와 무관한 도량 단위가 이 문제를 해결할 수 있다.Android는 다음 모든 단위를 지원합니다.px(픽셀): 화면의 점.in(인치): 길이 단위입니다.mm(mm): 길이 단위.pt(파운드): 1/72인치.dp(밀도와 무관한 픽셀): 화면 밀도를 바탕으로 하는 추상적인 단위입니다.160인치당 모니터에서 1dp = 1px.dip: dp와 같이android/ophone 예시에 많이 사용됩니다.sp(눈금과 무관한 픽셀): dp와 유사하지만 사용자의 글꼴 크기에 따라 크기를 조정할 수 있습니다.해상도: 전체 화면은 몇 점입니까? 예를 들어 800x480은 소프트웨어에 대한 디스플레이 단위이고 px를 단위로 하는 점입니다.density (밀도) 값은 인치당 몇 개의 디스플레이가 있는지를 나타내며 해상도와 두 가지 개념이다.apk의 자원 패키지에서 화면density=240시 hdpi 라벨을 사용하는 자원은 화면density=160시,mdpi 라벨을 사용하는 자원은 화면density=120시ldpi 라벨을 사용하는 자원입니다.일반android 설정 길이와 너비는 dip를 많이 사용하고 글꼴 크기는 sp를 많이 사용합니다. 화면 밀도는 160, 1dp=1px=1dip, 1pt=160/72 sp 1pt=1/72인치입니다.화면 밀도가 240일 때 1dp=1dip=1.5px.사용자 인터페이스가 현재와 미래의 디스플레이 유형에 정상적으로 표시될 수 있도록 항상 sp를 문자 크기의 단위로 사용하고 dip를 다른 요소의 단위로 사용하는 것을 권장합니다.물론 비트맵이 아닌 벡터 그래픽을 사용하는 것도 고려할 수 있다..
import android.content.Context;
import android.util.DisplayMetrics;
/**
* pixels = dips * (density / 160)
*
* @version 1.0.1 2010-12-11
*
* @author
*/
public class DensityUtil {
private static final String TAG = DensityUtil.class.getSimpleName();
// densityDpi
private static float dmDensityDpi = 0.0f;
private static DisplayMetrics dm;
private static float scale = 0.0f;
/**
*
*
*
* */
public DensityUtil(Context context) {
//
dm = new DisplayMetrics();
dm = context.getApplicationContext().getResources().getDisplayMetrics();
// DensityDpi
setDmDensityDpi(dm.densityDpi);
//
scale = getDmDensityDpi() / 160;
Logger.i(TAG, toString());
}
/**
* density
*
* @param DmDensity
* @retrun DmDensity Getter
* */
public static float getDmDensityDpi() {
return dmDensityDpi;
}
/**
* density
*
* @param DmDensity
* @retrun DmDensity Setter
* */
public static void setDmDensityDpi(float dmDensityDpi) {
DensityUtil.dmDensityDpi = dmDensityDpi;
}
/**
*
* */
public static int dip2px(float dipValue) {
return (int) (dipValue * scale + 0.5f);
}
/**
*
* */
public int px2dip(float pxValue) {
return (int) (pxValue / scale + 0.5f);
}
@Override
public String toString() {
return " dmDensityDpi:" + dmDensityDpi;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android dip,px,pt,sp의 차이점 상세 설명과거에 프로그래머는 일반적으로 픽셀 단위로 컴퓨터 사용자 인터페이스를 설계했다.예를 들어, 열 사이의 간격은 5픽셀이고 아이콘 크기는 16픽셀인 300픽셀 양식 필드를 정의합니다.×16픽셀 등.이렇게 처리하는 문제는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.