相关文章推荐
睿智的柿子  ·  [Solved] How do I ...·  2 月前    · 
行走的甘蔗  ·  android - Why ...·  11 月前    · 

点击时总体要变大,外面还有个边框B:

于是我选RelativeLayout做为上面A和B的布局,大小不一样都是固定宽高,里面的图片也是固定宽高,A和B都居中于其父布局,父布局也是个RelativeLayout,点击就切换AB两个visible,问题来了,当我切换到B可见时,里面的ImageView被撑大了,超出了蓝色边框,打印出来的信息也显示其宽高被改大了,但是切换到A时又是正常的,百思不得其解。

后面我发现,在xml布局中不要指定ImageView的src,利用Glide设置placeholder和error就没问题了。

然而,当我以为解决了的时候,另一个地方由于加载的图片是宽高比例较大的矩形,仍然出现这个问题,后来经过不断修改发现,不要指定layout_width和layout_height固定值,通过match_parent和margin来间接设置它的大小就没问题了:

虽然问题解决了,但是还是很困扰,有知道原因的帮忙解答下。

有一个布局,是这样的A:点击时总体要变大,外面还有个边框B:于是我选RelativeLayout做为上面A和B的布局,大小不一样都是固定宽高,里面的图片也是固定宽高,A和B都居中于其父布局,父布局也是个RelativeLayout,点击就切换AB两个visible,问题来了,当我切换到B可见时,里面的ImageView被撑大了,超出了蓝色边框,打印出来的信息也显示其宽高被改大了,但... 在UITableView中自定义了一个UITableViewCell,里面有一个Label和 ImageView ,问题是在点击这个Table的这一条时, imageview 大小 改变 了。 设置 imageview 的背景为红色,发现不是图片的 大小 改变 ,而是整个UI imageview 大小 改变 了。 找了很多问题,终于发现自定义的UITableViewCell变量名命名出了问题,我把这
有时候 ImageView 宽度是match_parent ,但是有些手机上却没铺满父布局。 这是因为 ImageView 的ScaleType 属性造成的,如果没设置这个属性的话 默认是ScaleType.FIT_CENTER ,表示图片等比例放大填充满高度或者宽度,所以如果 ImageView 的宽高比不是图片的宽高比,会导致宽度或者高度不够; 如果你想铺满父布局,就设置ScaleType 属性是Sca...
图片缩放是移动应用常见的一个功能,今天我们来讲基于Viewpager+Zoom ImageView 实现的类似相册的图片放大器,支持双击缩放,双指触摸缩放,单击图片关闭退出当前Activity。 老规矩先上效果图,图一是未缩放时的图片,图二是切换和缩放后的图片效果 先来说说Zoom ImageView 的实现思路,继承 ImageView ,主要通过捕获用户多指触控时的比例,计算出缩放的 大小 (这个根据个人喜好,可以自行调整的,若需要请动手设置,也增强大家的代码能力),然后获取图片的矩阵视图Matrix进行缩放。 之前写过一篇有关Glide的使用的文章: Android Glide图片加载框架使用过程中遇到的问题总结 ,这篇文章主要针对的是Glide 3.0使用过程中遇到的问题,最近一直在使用Glide 4.0做图片的加载,在最近的项目开发过程中,涉及到了宽度固定,高度自适应的情况(应用场景:流式布局、活动弹窗图等),当时的处理方式是在布局文件中添加如下代码: < ImageView
本来再xml里面定义也可以实现这种方式,不过我还是比较喜欢用代码的方式去实现public class M ImageView extends ImageView { public M ImageView (Context context) { super(context); public M ImageView (Context context, Attrib
imageView .getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { imageView .getViewTreeObserver().removeOnGlobalLayoutListener(this); int width = imageView .getWidth(); int height = imageView .getHeight(); Bitmap bitmap = ((BitmapDrawable) imageView .getDrawable()).getBitmap(); int bitmapWidth = bitmap.getWidth(); int bitmapHeight = bitmap.getHeight(); float scaleX = (float) width / bitmapWidth; float scaleY = (float) height / bitmapHeight; float scale = Math.min(scaleX, scaleY); int scaledWidth = (int) (bitmapWidth * scale); int scaledHeight = (int) (bitmapHeight * scale); // scaledWidth 和 scaledHeight 就是缩放后的 大小