2012-08-09 1 views
0

복용량 하나는 자바에서 안드로이드 애플 리케이션을위한 densityDpi를 변경하는 방법을 알고 계십니까?안드로이드 자바에서 densityDPI 변경

나는 관점 태그의 대상 밀도를 조작하는 안드로이드 응용 프로그램에서 작업하고 있습니다. 이것은 앱의 일부 장소에서 사소한 문제를 일으키고 있으며, 타겟 밀도는 소프트 키보드에 의해 재설정 된 것 같습니다.

그래서 이것을 재설정하거나 키보드가 밀도를 변경하지 못하게해야합니다.

+0

을 밀도를 변경? 정말 이상하게 들리며 나쁜 생각 일 수 있습니다. 유스 케이스 란 무엇입니까? – dmon

+0

틀림없이. 이 접근법이 효과가 있는지보기위한이 시점에서의 실험. 우리는 크기가 초과 된 phonegap 응용 프로그램을 가지고 있으며 축소하기 위해보기 포트 대상 밀도를 사용하고 있습니다. 소프트 키보드가 줌되면 확대/축소 효과를 얻기 위해 밀도를 변경하는 것처럼 보입니다. 밀도를 재설정하거나이 농도 변화가 발생하지 않도록하는 방법을 모색합니다. 이것은이 접근법을 가진 유일한 버그 인 것처럼 보이지만 그것을 발견하는 데 큰 어려움이 있습니다. –

+0

응용 프로그램 onconfigchange에서 변경하려면 반응합니까? –

답변

0

lenovo A1 (240dpi 밀도의 태블릿) 또는 은하계 노트와 같은 기기의 경우 기기에서 다양한 크기로 보이는 모든 것을 피하려면 앱에서이를 수행해야 할 수 있습니다.

는에서 onCreate에서 확장 된 애플리케이션 클래스에 다음 기능을 추가하고 전화 :

public void changeDensity(float desiredDensity) { 
    //desiredDensity : ldpi = 0.75 (120dpi) , mdpi = 1 (160dpi), hdpi = 1.5 (240dpi), xhdpi = 2.0 (320dpi) 
    DisplayMetrics metrics = getResources().getDisplayMetrics(); 

    metrics.density = desiredDensity; 
    metrics.xdpi = desiredDensity * 160; 
    metrics.ydpi = desiredDensity * 160; 
    metrics.densityDpi = (int) (desiredDensity * 160); 

    getResources().updateConfiguration(null, null); 
}