2015-02-05 3 views
1

TouchImageView (https://github.com/MikeOrtiz/TouchImageView)를 사용하여 전체 화면으로 비트 맵을 표시하고 있습니다. 사용자 더블 탭 또는 2 TouchImageView 너비/높이가 동일하게 유지하지만, 사진을 확대 손가락 핀치가-확대하면android TouchImageView 높이가 변경되지 않습니다.

touchImageView.setImageBitmap(bm); 

: 나는 일반 비트 맵을 넣어합니다. 내가 너비/높이 모든 것이 예상대로 작동 화면 다음 더 큰 비트 맵 넣어

:

<TouchImageView 
    android:id="@+id/picture_full_screen" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" /> 

이 제발 도와주세요 : 여기

Bitmap new_bm = Bitmap.createScaledBitmap(bm, 
      more_px_then_screen_width, more_px_then_screen_height, false); 
touchImageView.setImageBitmap(bm); 

은 XML입니다!

/** 
* Set view dimensions based on layout params 
* 
* @param mode 
* @param size 
* @param drawableWidth 
* @return 
*/ 
private int setViewSize(int mode, int size, int drawableWidth) { 
    int viewSize; 
    switch (mode) { 
    case MeasureSpec.EXACTLY: 
     viewSize = size; 
     break; 

    case MeasureSpec.AT_MOST: 
     viewSize = Math.min(drawableWidth, size); 
     break; 

    case MeasureSpec.UNSPECIFIED: 
     viewSize = drawableWidth; 
     break; 

    default: 
     viewSize = size; 
     break; 
    } 
    return viewSize; 
} 

나중에에이 onMeasure에서 사용자가 viewWidth을 계산하는 것, viewHeight 의 나있어

setMeasuredDimension(viewWidth, viewHeight); 

이에 setViewSize 변경에 사용됩니다

답변

1

조사 후 나는이 기능을 발견 원하는 효과 :

/** 
* Set view dimensions based on layout params 
* 
* @param mode 
* @param size 
* @param drawableSize 
* @return 
*/ 
private int setViewSize(int mode, int size, int drawableSize) { 
    int viewSize; 
    switch (mode) { 
    case MeasureSpec.EXACTLY: 
     viewSize = (int) (size*Math.max(normalizedScale, 1.0)); 
     break; 

    case MeasureSpec.AT_MOST: 
     viewSize = (int) (size*Math.max(normalizedScale, 1.0)); 
     break; 

    case MeasureSpec.UNSPECIFIED: 
     viewSize = drawableSize; 
     break; 

    default: 
     viewSize = (int) (size*Math.max(normalizedScale, 1.0)); 
     break; 
    } 
    return viewSize; 
} 

너비와 높이를 계산하는 데 함수가 사용 되었기 때문에 drawableWidth의 이름을 코드 자르기 용으로 drawableSize으로 변경했습니다.

누군가 도움이 될 것으로 기대합니다.

+0

나에게 변경된 사항은 없습니다. 내 경우에는 이미지 너비 = 화면 너비, 높이가 잘못되었습니다. –

관련 문제