,,图文讲解Android的ImageView类中的ScaleType属性设置

,,图文讲解Android的ImageView类中的ScaleType属性设置

本文主要介绍了Android的ImageView类中ScaleType属性的设置,同时也谈到了实现100%ImageView宽度的图像宽度和按高度比例自动缩放的方法。有需要的可以参考一下。

类型设置图

图文搭配,清晰的展现出每个属性的效果,

感觉CENTER_CROP很有用,长度和宽度自动适应Imageview。整张图片自动缩略填充整个区域并显示在中央(高度和宽度不一定是视图大小)。它以前是用JS在网页上实现的,它显示在

当初android还在尝试用java自己实现这个效果。太麻烦了,但没想到系统会方便很多。

ImageView的Scaletype决定了图片在视图上显示时的外观,例如放大多少比例,是显示图片的全部还是部分,等等。

设置包括:

1.在布局xml中定义android:scaleType='CENTER'。

2.或者在代码中调用imageview . setscaletype(imageview . scaletype . center);

接下来用最直观的方式解释ScaleType的值和对应的显示效果:3354实景演示。

首先,它是测试中使用的原始图片:

(产品尺寸:128 * 128)

(尺寸:640 * 428)

好了,让我们开始下面的测试:

1.

SetScaleType(ImageView。scale type . CENTER);

按照原始尺寸在中间显示图片。当图片的长度/宽度超过视图的长度/宽度时,将显示拍摄的图片的中间部分。

2.

SetScaleType(ImageView。scale type . CENTER _ CROP);

按比例放大图片尺寸并显示在中央,使图片的长度(宽度)等于或大于视图的长度(宽度)。

3.

setScaleType(ImageView。scale type . CENTER _ INSIDE);

将图片内容完整地显示在中央,通过缩小或原尺寸使图片的长/宽等于或小于视图的长/宽。

4.

setScaleType(ImageView。scale type . FIT _ CENTER);

根据视图的宽度按比例放大/缩小图片,并将其显示在中央。

5.FIT_START,FIT_END在图像缩放效果上与FIT_CENTER相同,只是显示位置不同。FIT_START放在顶部,FIT_CENTER居中,FIT_END放在底部。

这里就不举例了。

6.FIT_XY

不要按比例缩放图片,目标是用图片填满整个视图。

图片的宽度是imageview宽度的100%,高度会自动按比例缩放。

在ListView中,为了实现100%图像宽度适配ImageView容器宽度并使高度自动缩放的功能,查了很多资料,一下午都没有找到现成的方法,但似乎有了结论,那就是:

安卓靠自己是达不到这样的效果的,我们得自己动手。

使用scaleType属性设置视图中图片的缩放模式。本以为fit_center可以实现,结果无语,莫名其妙。它未能实现与容器宽度匹配的宽度,并且两侧都有空白区域。

解决方法:

1.仍然需要利用scaleType的center_crop效果,使图片始终能够按比例填充容器,不留空白区域。

2.剩下的主要功能就是动态设置ImageView容器的高度,让图片尽可能完整的显示出来,也可以达到maxHeight的效果。如果图像高度比太大,列表就不会太长。

int max height=zui . dp2px(m context,300);

int height=(int)((float)view . getwidth()/drawable . getminimumwwidth()* drawable . getminimumheight());

if(height max height)height=max height;

view.setLayoutParams(新的RelativeLayout。LayoutParams(RelativeLayout。LayoutParams.MATCH_PARENT,height));

View是ImageView图片视图容器对象,drawable是要显示的图片资源。

Drawable.getMinimumWidth()和drawable.getMinimumHeight()用于获取图片在屏幕上可见的高度和宽度,不一定是图片原来的高度和宽度。跟屏幕每寸像素有关系,大概是这样的。注意使用浮点值类型,否则可能会四舍五入到1的倍数。

将dp值转换为像素值,因为java代码中操作的高度和宽度都是像素值,所有样式都是用dip兼容屏幕。

公共静态int dp2px(上下文Context,int dp)

{

float scale=context . get resources()。getDisplayMetrics()。

}

好了,大概就是这样。顺便拿个测试结果图。

其实center_crop可以简单实现这个功能,但是不会自动扩展高度。相反,它应该使用图片的可见高度作为容器高度,然后显示容器覆盖。也就是说,集装箱高度不会成比例增加,导致图片显示几乎不到一半。图片小的话几乎没用,还是要动态调整。如果图片尺寸较大,特别是高度合适,可以直接使用。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: