반응형
픽셀을 sp로 변환
나는 현재의 필요 TextSize
의 TextView
의 sp
단위.
그러나 getTextSize()
크기를 pixels
. 그래서 방법이 convert pixels to sp
있습니까?
DisplayMetrics 클래스를 참조하십시오. 여기에는 densityDpi
및에 대한 필드가 있습니다 scaledDensity
.
사용 예 :
float sp = px / getResources().getDisplayMetrics().scaledDensity;
이것을 사용하십시오
public static float pixelsToSp(Context context, float px) {
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;
}
이 방법이 제대로 작동하는지 테스트하려면이 스 니펫을 사용하세요.
XML
<TextView
android:id="@+id/txtHelloWorld"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>
<TextView
android:id="@+id/txtHelloWorld2"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
자바
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
TextView helloWorldTextView = (TextView) rootView.findViewById(R.id.txtHelloWorld);
TextView helloWorldTextView2 = (TextView) rootView.findViewById(R.id.txtHelloWorld2);
helloWorldTextView2.setTextSize(pixelsToSp(getActivity(), helloWorldTextView.getTextSize()));
TextView의 글꼴 크기는 모두 동일해야합니다.
런타임에 조정되는 공개 필드를 보는 것이 이상하지만 작동합니다. 표준 Dpi는 160이므로 장치 Dpi가 240이라고 말하면 밀도와 배율이 모두 240 / 160 = 1.5로 표시됩니다. 픽셀과 sp 사이를 변환하는 방법입니다. px = 1.5 * sp
참조 URL : https://stackoverflow.com/questions/6263250/convert-pixels-to-sp
반응형
'programing' 카테고리의 다른 글
vue.js의 부모에서 자식 메서드에 액세스하는 방법 (0) | 2021.01.16 |
---|---|
urllib2를 사용하여 대용량 바이너리 파일을 파일로 스트리밍 (0) | 2021.01.16 |
기본 유형과 참조 유형의 차이점은 무엇입니까? (0) | 2021.01.16 |
Java 도구를 초기화하는 동안 Eclipse 내부 오류 (0) | 2021.01.16 |
루트 사용자로부터 bower를 실행하십시오. 가능합니까? (0) | 2021.01.16 |