2012-07-13 1 views
0

제 질문은 제목에 불과합니다. 레이아웃에 이미지를 넣으려고하면 FrameLayout의 배경에 wrap_content 너비와 높이로이 이미지를 시도하고 가능한 모든 fitScale 속성을 사용하여 imageView를 시도했습니다. 제 720 픽셀 폭 이미지 HALF가 720 픽셀 폭 S3 삼성 은하 내 휴대 전화의 화면 폭에 왜왜 내 720px 이미지가 720px 갤럭시 S3에 왜곡되어 있습니다.

난 그냥 질수는 .... 볼

내 진짜 질문 :

무엇 응용 프로그램의 내 사진이 왜곡되지 않도록하는 가장 좋은 방법은 무엇입니까?

+1

갤럭시 S3는 360dp 너비이며 ImageView 너비에는 fill_parent를 사용하고 scaleType = fitXY입니다. 720px 와이드 이미지를 drawable-xhdpi 폴더에 넣으면 크기가 축소 된 사본을 drawables 및 drawables-hdpi 폴더에 넣을 수 있습니다. – CSmith

답변

3

우선, 픽셀이 아닌 화면 밀도와 딥 값을 고려해야합니다. 즉, 장치에 따라 실제 화면 픽셀의 양이 다른 1 개의 딥 (밀도 독립적 픽셀)을 나타내는 "가상 화면"을 처리한다는 의미입니다. 드로어 블 들어

당신이 모든 화면에 선명 결과를 얻기를위한 다음과 같은 범주 :

  • LDPI (축척 계수 0.75)
  • MDPI (기본/기준 : 스케일 계수 1.0)
  • hdpi에 (1.5)
  • xhdpi (2.0)

서로 다른 크기의 버전? 만들기 ns의 비트 맵을 사용하여 모든 화면에서 선명하게 결과를 얻을 수 있습니다. 업 스케일링으로 인해 품질 손실을 피하기 위해 xhdpi에서 최고 해상도로 시작해야합니다.

다른 버전을 각 드로어 블 폴더 (res/drawable-ldpi, res/drawable-mdpi ...)에 넣으십시오. 이러한 서로 다른 버전의 동일한 비트 맵은 동일한 파일 이름을 가져야합니다. 그렇지 않으면 작동하지 않습니다.

둘째로 장치 화면의 높이와 너비에 대해 강력한 가정을해서는 안됩니다. 정확한 화면 해상도를 모르는 상태에서 동적으로 전체 화면을 사용하도록보기 및 그래픽을 레이아웃해야합니다. 그러나 configuration qualifiers

  • 작은
  • 정상
  • 초대형를 기반으로 귀하의 의견에 대한 고정 된 크기를 피하기 위해

시도를 실시하고이를 근거로이 화면 해상도에 대해 약한 가정을 만들 수 있습니다 어떤 가정. 레이아웃 XML 파일에서 항상 "px"값을 사용하지 마십시오. 대신 "dip"을 사용하십시오.

자세한 내용은 Supporting Multiple Screens 문서를 참조하십시오.

이미지가 화면의 전체 너비를 차지하도록하려는 것처럼 소리를 내고 싶습니다.

이미지를 배경 (예 : FrameLayout)으로 설정하면 이미지의 표시된 클립은 해당보기의 크기에 따라 달라집니다.

보기의 layout_width/layout_height가 wrap_content로 설정된 경우 크기는 하위보기의 크기 및 정렬에 따라 다릅니다. FrameLayout의 경우 FrameLayout의 단일 하위 크기에 따라 다릅니다.

ImageView를 사용하는 경우 기본적으로 ImageView의 크기에 맞게 이미지의 크기가 조정됩니다. ImageView의 크기는 layout_width/layout_height 값에 따라 다릅니다. 이 값을 match_parent로 설정하면 ImageView에 "성장할 공간"이 충분한 경우 이미지가 화면 전체에 걸쳐 보일 수 있습니다.

"성장할 공간"은 레이아웃의 ImageView 컨텍스트에 따라 다릅니다. 이웃이 방을 차지합니까? 부모보기가 너무 작습니까 (예 : wrap_content)? 이러한 가능한 문제점을 찾으십시오.

+0

완벽한 답변. –

관련 문제