Android缩放大图片

来源:互联网 发布:zz的网络意思 编辑:程序博客网 时间:2024/04/28 22:00

Android直接加载大图片会爆OOM,所以需要得到图片的宽和高,以及屏幕的宽和高,然后得到缩放比,就可以加载图片了。


public class MainActivity extends ActionBarActivity {private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                iv=(ImageView) findViewById(R.id.iv);                WindowManager wm=(WindowManager) getSystemService(WINDOW_SERVICE);                int height=wm.getDefaultDisplay().getHeight();        int width=wm.getDefaultDisplay().getWidth();        System.out.println("width:"+width+"---"+height);                BitmapFactory.Options options = new Options();        //设置为true,只会得到图片基本信息,不会加载图片        options.inJustDecodeBounds=true;                BitmapFactory.decodeFile("/mnt/sdcard/eeee.jpg",options);                int imgWidth=options.outWidth;        int imgHeight=options.outHeight;                System.out.println("图片的宽和高:"+imgHeight+"-----"+imgHeight);        //设置缩放比        int scale=1;        int scaleX=imgWidth/width;        int scaleY=imgHeight/height;                if(scaleX>scaleY){        scale=scaleX;        }else{        scale=scaleY;        }        System.out.println("thi probdfd:"+scale);            options.inSampleSize=scale;        //设置为false,可以加载图片        options.inJustDecodeBounds=false;        Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/eeee.jpg",options);                iv.setImageBitmap(bitmap);    }}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.picdemo1.MainActivity" >    <ImageView        android:id="@+id/iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></RelativeLayout>



0 0