【实习项目记录】(三)调整网络图片固定宽高

很多时候服务器端传过来的图片大小不统一。在ImageView里面设置这个属性可以让图片显示的时候统一大小。

android:scaleType="centerCrop"

android:scaleType是控制图片如何resized/moved来匹对ImageView的size。

android:scaleType值的意义区别:

CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示

FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示

MATRIX / matrix 用矩阵来绘制

从网络获取的图片宽高比例可能不是你想要的,这时就需要在代码中设置宽高

// 下载图片
Bitmap bitmap = PosterBmpProvider.getInstance().loadImage(url);

LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) viewHolder.img

                .getLayoutParams(); // 取控件View当前的布局参数
                int width = bitmap.getWidth();
                int height = bitmap.getHeight();
                // 定义预转换成的图片的宽度和高度
                int newWidth = SystemUtils.getScreenWidth(mContext) *4 / 6;
                int newHeight = SystemUtils.getScreenWidth(mContext) * 3 / 7;

                float scaleWidth = ((float) newWidth) / width;
                float scaleHeight = ((float) newHeight) / height;

                // 创建操作图片用的matrix对象
                Matrix matrix = new Matrix();
                // 缩放图片动作
                matrix.postScale(scaleWidth, scaleHeight);
                // 创建新的图片
                Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width,
                        height, matrix, true);
                viewHolder.img.setImageBitmap(resizedBitmap);
时间: 2024-11-09 14:48:58

【实习项目记录】(三)调整网络图片固定宽高的相关文章

在一个没有固定宽高的容器中,为什么设置position:absolute后就可以全屏显示了?

此场景适用于移动端百分比布局,背景全屏显示. 在一个没有固定宽高的容器中设置背景,想要背景全屏显示,设置宽高100%后还需设置position:absolut; 原因: absolute会脱离normal float, 即该元素会直接以root标签(类似window但不是<html>标签)进行参照,而root标签的高度存在具体数值, 即浏览器视窗高度, 有明确px值. 而relative不会脱离normal float, 他的height会直接依赖直接父元素(em单位也是), 所以百分比计算出

CSS实现垂直水平居中的三个方法:(1)固定宽高 (2)不固定宽高 (3)Flex

这两天迷上逛一些前端技术网站和论坛了,据说学前端要学会记录才能加深印象,所以有事没事还是写些随笔吧. 以前还在一个公司的面试试卷里做到过: 垂直居中: 1.父元素设置position:relative, 子元素设置position:absolute; top:50%; margin-top: -元素高度 2.height: 500px; line-height: 500px; 水平居中: 1.text-align:center 2.margin: 0 auto; 以上是我之前写的答案,接下来看看

两行文字,固定宽高,超出部分以三点隐藏

代码如下: display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 .-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 .text-overflow: ellipsis;,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 .overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webki

【实习项目记录】(一)加密算法MD5和RSA

什么是md5加密? MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2.MD3和MD4发展而来. MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明文是yanzi1225627,得到MD5加密后的字符串是:14F2AE15259E2C276A095E7394DA0CA9  

【实习项目记录】(二) JSON

介绍 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).

IOS客户端Coding项目记录(三)

18:图片视图几种填充样式 _imgView.contentMode = UIViewContentModeScaleAspectFill; 如下: typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, UIViewContentModeScaleAspectFill, UIViewContentModeRedraw, // re

.NET 等宽、等高、等比例、固定宽高生成缩略图 类

根据原图片生成等比缩略图 #region 根据原图片生成等比缩略图 /// <summary> /// 根据源图片生成缩略图 /// </summary> /// <param name="imgPath_old">源图(大图)物理路径</param> /// <param name="imgPath_new">缩略图物理路径(生成的缩略图将保存到该物理位置)</param> /// <p

DIV设置了固定宽高出现文字(文本)的不能自动换行

如果你的div设置了固定的width和height,有时会出现文字不能自动换行的情况 查过相关资料后才知道,只有英文文本才会出现不能自动换行的情况,(中文不存在)而原因是因为英文文本之间没有加空格,浏览器会认为这是一个特别长的单词: 解决方法: 1. 在文本适当位置加空格 2. css代码中加上这行:word-wrap:break-word;

base64转byte[]、byte[]转base64、byte[]转图片后图片按固定宽高缩放

/**     * 图片缩放     */    public static BufferedImage ImageStringByte(int width, byte[] b) {                InputStream buffin = new ByteArrayInputStream(b);        BufferedImage src = null;        try {            src = ImageIO.read(buffin);        }