2014-05-19 2 views
0

알 수없는 종횡비 및 해상도의 이미지가 내 ImageViews에서 균일하고 확장 된 방식으로 표시되도록 내 앱 전체에 android:scaleType="centerCrop"을 사용합니다.안드로이드 센터 더 큰 화면을위한 자르기 ImageView 너비가 부모와 일치합니다

centerCrop 알고리즘은 이미지 뷰 범위 밖에서 뷰 중심에서 이미지의 크기를 조정합니다.

휴대 전화를 세로 모드로 사용할 때 좋습니다. 폰 폼 팩터 종횡비는 centerCrop에 이상적입니다. 그러나 가로 모드와 큰 화면에서 centerCrop은 일반적으로 이미지 작성 방법의 안전 영역에 충실하지 않습니다. 피사체의 머리 부분은 일반적으로 잘립니다.

거기에 해상도를 감지하고 대체 레이아웃을 만들기 시작한 경우에도이를 동적으로 고려하기 위해 사용할 수있는 scaleType이 있습니다. centerCrop의 대안은 무엇입니까? 같은 종류의 스케일링을 유지하면서도 대상의 초점을 잃지 마십시오.

+0

귀하의 ImageView의 크기는 너비가 부모와 일치한다고하지만 너는 높이 wrap_content는 무엇입니까? – ashishduh

+0

ashisduh, 다수의 dp 또는 wrap_content – CQM

답변

0

원하는 중심을 지정할 수 있도록 원하는대로 매트릭스를 제공하고 비율을 조정할 수 있습니다. 규모 유형이 행렬에

설정은 당신이 그 시점에서 확장 때 맞도록 정확한 규모를 해결하기 위해 수학을 할 필요가있는 단점이 setImageMatrix

imageView.setScaleType(ScaleType.MATRIX); 
Matrix m = new Matrix(); 
float scale = 2; 
m.setScale(scale, scale, 50, 100); //scale by 2x around the point 50, 100 
imageView.setImageMatrix(m); 

를 사용합니다. 위와 같이 X와 Y를 동일하게 유지하면 가로 세로 비율이 유지됩니다.

CENTER http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/ImageView.java을 처리하는 ImageView의 코드로 시작할 수 있습니다. 그러면 피벗 점을 맞게 수정하면됩니다.

+0

이 예를 보여줄 수 있습니까? 내 머리 꼭대기에서 모체 예제를 모릅니다. – CQM

관련 문제