크기

2016-09-15 1 views
1
내 목표는 내가하려고 512 X 512

크기

의 크기로 화면의 이미지를, 어떤 크기의 이미지를 다운로드 여기에 원형 마스크를 적용하고 보여주는 것입니다

URLImage에 512 x 512 자리 표시 자 및 원형 마스크를 사용하고 을 통해 Label에 넣습니다. 그러나 레이블은 이미지가 원형 크기로 자연스럽게 그려지는 동안 올바른 높이 (512)를 갖습니다. 가로 세로 비율을 유지하면서 세로로 레이블을 채우고 싶습니다.

내 코드 :

  EncodedImage img = URLImage.createToStorage(
       roundPlaceholder, // roundPlaceholder is 512 x 512 
       "rounded" + uid, 
       imageUrl, 
       URLImage.createMaskAdapter(mask)); // mask is 512 x 512 

      myLabel.setIcon(img); 

나는 뭔가를 놓치고, 또는 그것을 할 수있는이 방법은 아니다?

답변

1

시도해보십시오. 자연의 크기로 이미지를 다운로드하지만 원하는대로 자리 표시 자 크기를 유지하십시오. 너비 또는 높이가 더 길면 결정하고 이미지 클래스의 .scaledWidth 또는 .scaledHeight 메서드를 사용하여 크기를 조정하고 가로 세로 비율을 유지합니다. 마스크 크기를 적용하기 전에 마스크 크기가 이미지와 일치하는지 확인하기 위해해야 ​​할 일이 조금 더있을 수 있습니다.

+0

감사합니다.하지만 귀하의 제안은 작동하지 않았습니다. URLImage가 너비/높이에 관계없이 작은 크기로 그려지는 것처럼 보입니다. –

0

마스크 어댑터의 기본 동작은 자연 크기가 아니라 "채우기 비율"입니다. 그래서 이것은 당신에게 오해의 소지가 있습니다. "규모에 맞게"접근 방식을 기대할 수도 있지만 빈 곳이 생길 수 있으므로 문제가 될 수 있습니다.

참조 : https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/ui/URLImage.java#L175-L183

+0

마스크는 빨간 청어입니다. 빈 공간 512 x 512 이미지를 자리 표시 자로 사용하면 결과는 동일합니다. 다른 한편으로는 프로젝트의 리소스에 같은 이미지를 추가하고 setIcon()을 호출하면 올바른 크기로 그려집니다. URLImage를 일반 이미지로 변환하는 방법이 있습니까? –

+0

번호 URLImage는 정의에 따라 다운로드 이미지의 크기를 사용자가 지정한 크기에 맞게 조정합니다. 논리/유스 케이스는 상기 이미지에 대해 지정된 특정 공간에 맞추는 것입니다 ... 이는 애플리케이션 설계와 리플 로우/혼란을 일으키지 않고 매끄럽게 진행될 수 있도록 중요합니다. URLImage를 원하지 않는 것처럼 들리 겠지만 실제로는 사용자의 요구 사항을 충족시키는 간단한 파일 다운로드 만 사용해야합니다. –

+0

Ok Shai, 알아 냈습니다. 내가 이전에 같은 이름을 사용하여 앱의 다른 부분에 동일한 이미지의 더 작은 버전을 다운로드했음을 알았습니다. 분명히 시뮬레이터 저장 장치를 지운 후에도 작은 버전이 재사용되었습니다. 어쨌든 고맙습니다. –