gpt4 book ai didi

android TouchImageView 高度不改变

转载 作者:行者123 更新时间:2023-11-30 02:22:02 25 4
gpt4 key购买 nike

我正在使用 TouchImageView ( https://github.com/MikeOrtiz/TouchImageView ) 全屏显示位图。当我放置普通位图时:

touchImageView.setImageBitmap(bm);

如果用户双击或双指捏合缩放图片会缩放,但 TouchImageView 宽度/高度保持不变。

当我放置大于屏幕宽度/高度的位图时,一切都按预期工作:

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

这是 xml:

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

请帮忙!

最佳答案

经过调查我发现了这个函数:

/**
* 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 更改为此得到了我想要的效果:

/**
* 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 以进行代码排版,因为该函数也用于计算宽度和高度。

希望有人会觉得这有帮助。

关于android TouchImageView 高度不改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com