package com.example.util;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.drawable.BitmapDrawable;
import android.view.Display;
public class PictureUtils {
public static BitmapDrawable getScaledDrawable(Activity activity , String path){
//获取屏幕大小
Display display = activity.getWindowManager().getDefaultDisplay();
float destWidth = display.getWidth();
float destHeight = display.getHeight();
//读取图片信息(注意并不是把图片读到内存中)
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
float srcWidth = options.outWidth;
float srcHeight = options.outHeight;
//计算放缩比例
int inSampleSize = 1;
//如果图片大小比屏幕大小大
if(srcHeight > destHeight || srcWidth > destWidth){
inSampleSize = Math.round(srcHeight/destHeight);
}else{
inSampleSize = Math.round(srcWidth / destWidth);
}
//真正把图片加载到内存中
options = new BitmapFactory.Options();
options.inSampleSize = inSampleSize;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
return new BitmapDrawable(activity.getResources(),bitmap);
}
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.drawable.BitmapDrawable;
import android.view.Display;
public class PictureUtils {
public static BitmapDrawable getScaledDrawable(Activity activity , String path){
//获取屏幕大小
Display display = activity.getWindowManager().getDefaultDisplay();
float destWidth = display.getWidth();
float destHeight = display.getHeight();
//读取图片信息(注意并不是把图片读到内存中)
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
float srcWidth = options.outWidth;
float srcHeight = options.outHeight;
//计算放缩比例
int inSampleSize = 1;
//如果图片大小比屏幕大小大
if(srcHeight > destHeight || srcWidth > destWidth){
inSampleSize = Math.round(srcHeight/destHeight);
}else{
inSampleSize = Math.round(srcWidth / destWidth);
}
//真正把图片加载到内存中
options = new BitmapFactory.Options();
options.inSampleSize = inSampleSize;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
return new BitmapDrawable(activity.getResources(),bitmap);
}
/**
*
* @param image需要销毁的图片资源
*/
public static void cleanImageView(BitmapDrawable image){
if(!(image instanceof BitmapDrawable)){
return ;
}else{
BitmapDrawable drawable = image;
drawable.getBitmap().recycle();
}
}
}