andriod ImageView scaleType个属性全面介绍

来源:互联网 发布:mysql数据库查看 编辑:程序博客网 时间:2024/06/03 13:08

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) {            }        });





0 0
原创粉丝点击