2013-01-11 1 views
0

Universal Image View를 사용하여 이미지를 내 응용 프로그램에로드하고 있습니다. drawable은 이미지의 크기와 동일하게 자리 표시 자로 사용합니다.

는 논리는 이것이다 내가

public static void setBitmapToAImageviewUIL(final ImageView imageView, String uriPath, String imageName) 
{ 
    if(imageName != null && !imageName.equals("")) 
    { 
    //We use the local image as a temporary placeholder 
    DisplayImageOptions options = new DisplayImageOptions.Builder() 
      .showStubImage(Utilities.getDrawableResource(imageName)) 
      .cacheOnDisc() 
      .cacheInMemory() 
      .imageScaleType(ImageScaleType.EXACTLY) 
      .bitmapConfig(Bitmap.Config.ARGB_8888) 
      .build(); 

    imageLoader.displayImage(uriPath, imageView, options); 
    } 

}

을 구현하는 방법입니다 : 나는 드로어 블에서 일부 이미지가 있습니다. 먼저 로컬 Drawable을 자리 표시 자로 사용합니다 (showStubImage). Utilities.getDrawableResource() 드로어 블을 다시 실행합니다. 그런 다음 다운로드가 완료되면 서버에서 다운로드 한 이미지가 표시됩니다.

내 문제는

자리 표시로 사용되는 임시 이미지는 서버에서 다운로드 한 이미지보다 더 크다. 그래서 처음에는 이미지가 크고, 새로운 이미지의 다운로드가 완료되면 크기가 줄어 듭니다. 이미지 뷰와 정확히 같은 크기로 만들려면 어떻게해야합니까?

크기를 수동으로 조정하지 않으려 고 노력하고 있습니다. 감사합니다

추 신 : Utilities.getDrawableResource()getResource().getIdentifier()을 사용하여 올바른 드로어 블을 얻습니다.

답변

1

달성하고자하는 목표에 따라 몇 가지 방법이 있으며, 사용자가 미리 알고있는 정보의 양에 따라 다릅니다.

편도 방식으로 이미지 뷰를 XML의 정확한 크기 (예 : width:match_parentheight:144dp)로 설정하고 서버와 드로어 블 스케일을 그 안에 넣습니다. 당신이 그것을 다운로드하기 전에 이미지 서버의 크기에 액세스 할 수있는 경우

, 당신은 그 정확한 값으로 이미지 뷰의의 LayoutParams을 설정 한 것과 드로어 블 크기 조정하자 (서버는 완벽하게 맞는 것) 나 '

수 있습니다 XML 모양 drawables 및/또는 9patch를 사용하여 크기를 더 좋게 만들 수 있다고 생각했지만 위의 두 가지 방법 중 하나가 필요합니다.

+0

하지만 여러 화면 크기를 지원하는 방법은 무엇입니까? –

+1

고정 치수를 값 폴더의 dimens.xml에 넣습니다. 필요에 따라 다른 값에 dimens.xml을 만들 수 있습니다 (값이 크거나 값이 큼 - sw600dp – Budius