2012-06-23 2 views
4

응용 프로그램을 개발하는 동안 이것은 내가 한 것입니다 : 내 기본 해상도는 320 * 480, 내 기본 밀도는 160dpi입니다. 2. drawable-mdpi 폴더에 모든 이미지를 저장합니다. 3. xml 레이아웃에서 이미지의 폭과 높이를 지정하는 동안 dp를 사용합니다.안드로이드에서 DP 사용과 관련하여 문제가 있습니까?

dp를 사용하면 개발자 사이트에서 언급 한 바와 같이 자동으로 비율이 조정되고 화면에 따라 축소됩니다. 그러나 원하는 결과를 얻지 못했고 이미지가 올바르게 조정되지 않았습니다. 더 작은 장치. 내가 한 그래서

내가 원하는 결과를 얻었다 는 XML 파일에 2. 화면의 폭과 높이 퍼센트에서 런타임에 너비와 이미지의 높이를 설정 그리고이 일을하여 레이아웃을 1.created했다 . 이미지는 작은 240 * 320에서부터 탭 600 * 1024까지의 모든 장치에서 적절하게 확장되었습니다.

내 질문에 개발자 사이트에서 언급 한대로 너비와 높이를 지정하기 위해 dp를 사용해야합니다. 그렇지 않으면 프로그래밍 방식으로해야합니까? 그리고 dp의 개념은 무엇이고 어디에서 사용할 수 있습니까?

+0

이것은 내가 궁금해 한 것입니다. 아직 이미지를 마스터하지 않았고 이미지가 Android에 표시되는 방식을 모르고 있습니다. – EGHDK

답변

2

우선, "dp"의 사용은 좋습니다. 그 문제는 없습니다.

둘째, 언급 한 문제에 대처하기 위해 가장 좋은 방법은 적절한 크기의 이미지를 ldpi, hdpi 및 xhdpi 폴더에 저장하는 것입니다. 그렇다면 레이아웃을 동적으로 조정할 필요가 없습니다.

LDPI에서 이미지 크기들의 비율 MDPI : HDPI : XHDPI = 3 : 4 : 6 : 8

OR이 동적 장치의 크기를 예측하고 적절하게 레이아웃을 설정하는 방법이다

DisplayMetrics displayMetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
    switch(displayMetrics.densityDpi){ 
     case DisplayMetrics.DENSITY_LOW: 
      //your layout for samll sized devices 
      break; 
     case DisplayMetrics.DENSITY_MEDIUM: 
      //your layout for medium sized devices 
      break; 
     case DisplayMetrics.DENSITY_HIGH: 
      //your layout for large sized devices 
      break; 
    } 
+0

많은 이미지와 플러스가있는 해결책이 아니라 각각의 폴더에있는 모든 이미지를 저장할 여유가 없습니다. 원하는 것은 하나 또는 두 개의 레이아웃이 있어야하며 이미지를 저장해야합니다. 대부분 폴더 2 개와 레이아웃 및 이미지는 모든 장치에서 확장되어야합니다. – sankettt

+0

그러면 장치의 크기를 동적으로 예측하고 이에 따라 레이아웃 (이미지 배치 및 크기 조정)을 설정할 수 있습니다. 나는 그 대답을 편집했다. –

관련 문제