마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지뷰 스케일..관련

0 추천
이미지뷰 너비만 고정되어 있는 상태에서

너비를 기준으로 세로 사진이든.. 가로사진이든.. 비율맞춰서 높이는 변하도록...하려면

scaletype을 무엇으로 설정해야하나요?? 카카오스토리는 가로사진이든 세로사진이든...

너비는 다 똑같고 이미지 잘림현상 없이 잘 보여지던데..전 잘 안되네요 ;

 

비트맵을 다시 생성해야 하는건가....Center CROP하면 짤리고...fitCenter하면 여백이 남고..하아..
치솟음 (3,710 포인트) 님이 2016년 5월 10일 질문

2개의 답변

+1 추천
그렇게하려면 원본이미지의 width/height 값을 알고있어야되고,

원본이미지 가로/세로 값을 가지고 이미지뷰의 높이값을 가변으로 설정해줘야 합니다.

 

원본이미지 가로 : width, 원본이미지 세로 : height , 이미지뷰 : iv 라고 하면,

iv.getLayoutParams().height = 고정너비 * height / width;

이런식으로 이미지뷰 높이값을 설정해주면 되고, 원본이미지와 이미지뷰의 가로세로 비율이 같기때문에 스케일타입은 FIT_XY 로 하면 됩니다.

 

그리고 보통 이런식으로 구현을 하게될 경우 서버에서 이미지 url 과 이미지 사이즈정보(width/height) 정보를 같이주죠. 이유는 앱에서 이미지를 불러오기전에 이미지뷰의 사이즈를 정해놓고 있어야하기 때문에..

이미지 받아와서 비트맵의 width/height 값으로 이미지뷰 높이를 계산한다그러면 딜레이가 발생할 수 있어서 UI 적으로 좋지 않을거같네요.
Spacebar (1,300 포인트) 님이 2016년 5월 10일 답변
0 추천
어떤 이미지요? 썸네일은
Centercrop 써요 모든 앱이...


확대시만 이미지 전부를 보여 주고요
쿵뿌팬더 (3,440 포인트) 님이 2016년 5월 10일 답변
...