andriod ImageView scaleType个属性全面介绍

ImageView的scaleType属性很多,之前一直傻傻分不清楚,这里做下总结,希望对小伙伴们也有所帮助,若有错误处,欢迎指正。

原图:

大图     小图  

1.matrix

matrix:正常绘制图片不做伸缩和位置控制

2.center


center属性对图片不做伸缩处理,只让图片居中显示

3.centerCrop

centerCrop对图片做等比例伸缩处理,把最小边放大至填充view或者将最大边缩小至填充view,并居中显示

4.fitCenter

fitCenter:将图片的等比例放大或缩小到view的宽,垂直方向上居中显示

5.fitStart

fitx即fitstart,将图片的等比例放大或缩小至view的宽,并显示在view的上方

6.fitEnd

fity即fitEnd,将图片的等比例放大或缩小到view的宽,显示在view的下方

7.fitXY

fitxy将图片完全显示不按比例对图片缩放

8.centerInside:

 centerinside将图片完全显示在view中,如果图片完全(宽和高)小于view,则居中显示,如果宽或高大于view的款或者高,则按缩小比例最大的值对图片进行缩小,并居中显示图片


布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:visibility="gone"
        >

        <Button
            android:id="@+id/bt_popup"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:onClick="popup"
            android:text="popup"/>
    </LinearLayout>

    <ImageView
        android:id="@+id/img_big"
        android:layout_width="100dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:background="#000000"
        android:scaleType="matrix"
        android:src="@mipmap/lin"/>

    <ImageView
        android:id="@+id/img_small"
        android:layout_width="100dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:background="#000000"
        android:scaleType="matrix"
        android:src="@mipmap/linxiao"/>

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/stype_img">

    </Spinner>
</LinearLayout>

Spinner布局:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="stype_img">
        <item>matrix</item>
        <item>center</item>
        <item>centerCorp</item>
        <item>centerinside</item>
        <item>fitCenter</item>
        <item>fitX</item>
        <item>fitY</item>
        <item>fitXY</item>
    </string-array>
</resources>


activity:

mSpinner = (Spinner) findViewById(R.id.spinner);
        mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> view, View view1, int i, long l) {
                switch (i) {
                    case 0:
                        img_big.setScaleType(ImageView.ScaleType.MATRIX);
                        img_small.setScaleType(ImageView.ScaleType.MATRIX);
                        break;
                    case 1:
                        img_big.setScaleType(ImageView.ScaleType.CENTER);
                        img_small.setScaleType(ImageView.ScaleType.CENTER);
                        break;
                    case 2:
                        img_big.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        img_small.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        break;
                    case 3:
                        img_big.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                        img_small.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                        break;
                    case 4:
                        img_big.setScaleType(ImageView.ScaleType.FIT_CENTER);
                        img_small.setScaleType(ImageView.ScaleType.FIT_CENTER);
                        break;
                    case 5:
                        img_big.setScaleType(ImageView.ScaleType.FIT_START);
                        img_small.setScaleType(ImageView.ScaleType.FIT_START);
                        break;
                    case 6:
                        img_big.setScaleType(ImageView.ScaleType.FIT_END);
                        img_small.setScaleType(ImageView.ScaleType.FIT_END);
                        break;
                    case 7:
                        img_big.setScaleType(ImageView.ScaleType.FIT_XY);
                        img_small.setScaleType(ImageView.ScaleType.FIT_XY);
                        break;


                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> view) {

            }
        });





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值