GVKun编程网logo

Android ImageView 的scaletype属性详细介绍(安卓imageview属性)

1

针对AndroidImageView的scaletype属性详细介绍和安卓imageview属性这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Android4.3ImageViewScal

针对Android ImageView 的scaletype属性详细介绍安卓imageview属性这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Android 4.3 ImageView ScaleType.MATRIX、Android ImageView topCrop / bottomCrop scaletype?、android ImageView 图片宽度全屏,高度自适应的写法、Android ImageView-setAlpha(float)与setImageAlpha(int)等相关知识,希望可以帮助到你。

本文目录一览:

Android ImageView 的scaletype属性详细介绍(安卓imageview属性)

Android ImageView 的scaletype属性详细介绍(安卓imageview属性)

android:scaleType是控制图片如何 resized/moved来匹对ImageView的size,我们可以这样啦使用

  1. <ImageView android:id="@+id/img_weibo_img"

  2. android:layout_width="fill_parent"

  3. android:layout_height="fill_parent"

  4. android:visibility="gone"

  5. android:scaleType="fitXY">



也可以这样:

  1. ImageView.setScaleType(ImageView.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 用矩阵来绘制


Android 4.3 ImageView ScaleType.MATRIX

Android 4.3 ImageView ScaleType.MATRIX

今天我在Nexus 7上设置了新的Android JB 4.3,我试着运行我的应用程序.

除了0700和ScaleType.MATRIX之外的一件小事,Everythings的工作方式应该是应该的.

基本上我在我的应用程序中有一个ImageView作为背景,相应于ViewPager回调我移动图像的焦点部分更新Matrix我使用setImageMatix( Matrix matrix )给imageView.

问题似乎是我不能再更新矩阵了,我只需要实例化一个新的传递给ImageView.

我设法解决它每次新的Matrix实例化,但它似乎与旧版本相比内存昂贵.

这是一个BUG吗?
有没有办法更新Matrix? (顺便说一下,我已经尝试过invalidate()的ImageView ecc.)

不工作

    private void updateMatrix( final int page, final double offset ) {          
        double pagePosition = page + offset;

        Matrix matrix = imageView.getimageMatrix();
        matrix.setScale( scale, scale );
        matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );

        imageView.setimageMatrix( matrix );

        imageView.invalidate();
    }

工作

    private void updateMatrix( final int page, final double offset ) {          
        double pagePosition = page + offset;

        Matrix matrix = new Matrix();
        matrix.setScale( scale, scale );
        matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );

        imageView.setimageMatrix( matrix );

        imageView.invalidate();
    }

编辑:

在第一种情况下,图像显示在ImageView的左上角,没有应用任何比例或平移,就像矩阵回到标识.

解决方法:

只需将Matrix保存为字段,而不是从ImageView中检索它,你会很高兴:)

Android ImageView topCrop / bottomCrop scaletype?

Android ImageView topCrop / bottomCrop scaletype?

我有一个方形的ImageView,显示不同尺寸的图片.我想始终保持图片的原始宽高比,并且图像周围没有边距(因此图像占据了整个ImageView).为此,我在ImageView上使用centerCrop scaleType.但是,我想这样做,如果图像的顶部和底部被切断(即:图像高于宽度),图像会被拉向容器的底部.因此,不是在顶部和底部裁剪相同数量的像素,而是图像与ImageView的顶部和侧面齐平,并且图像的底部裁剪了两倍.这在xml中是否可行,如果没有,是否有java解决方案?

解决方法:

使用常规ImageView及其在xml中的属性,您将无法做到这一点.你可以用一个合适的scaleType矩阵来实现这个目标,但是写它是一个痛苦的屁股.我建议你使用一个可以轻松处理这个问题的受人尊敬的库.例如CropImageView.

android ImageView 图片宽度全屏,高度自适应的写法

android ImageView 图片宽度全屏,高度自适应的写法

<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/res_version_bg" />
<!-- Set this to true if you want the ImageView to adjust its bounds
to preserve the aspect ratio of its drawable. -->

如果希望ImageView调整其边界,请将此设置为true 以保持其可拉伸的长宽比

<attr name="adjustViewBounds" format="boolean" />
把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
android:scaleType="fitXY"

Android ImageView-setAlpha(float)与setImageAlpha(int)

Android ImageView-setAlpha(float)与setImageAlpha(int)

使用this答案作为参考,我了解到视图的setAlpha(float)基本上通常在缓冲区上绘制视图,然后使用第二遍通过场景中的alpha值绘制视图,因此设置视图的alpha通常涉及损害应用程序的性能.

但是,ImageViews还有另一种名为setimageAlpha(int)的方法,根据我收集到的方法,将alpha值应用于ImageView的滤色镜-完全不需要第二遍,因此效率更高.

我的问题是-由于在ImageView上使用setimageAlpha效率更高,是否有理由在ImageView上使用setAlpha(float)?还是应该总体上避免使用setimageAlpha(int)?

解决方法:

从方法的字面意义上讲,我猜setimageAlpha仅设置图像的Alpha.如果图像视图具有背景,则背景将不是半透明的.但是setAlpha设置整个视图的alpha值.

关于Android ImageView 的scaletype属性详细介绍安卓imageview属性的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android 4.3 ImageView ScaleType.MATRIX、Android ImageView topCrop / bottomCrop scaletype?、android ImageView 图片宽度全屏,高度自适应的写法、Android ImageView-setAlpha(float)与setImageAlpha(int)的相关知识,请在本站寻找。

本文标签: