您的位置:首页 > 移动开发 > Android开发

android三种载入图片方式

2012-07-07 10:10 232 查看
package com.example.aa;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.util.FloatMath;

/**
* 载入图片的方法
*
* @author Administrator
*
*/
public class CompressPicture {
// 直接载入图片
public static Bitmap getBitmap(String path) {
Bitmap bt = BitmapFactory.decodeFile(path);
return bt;
}

// 指定大小載入圖片
public static Bitmap getBitmap(String path, int size) {
Options op = new Options();
op.inSampleSize = size;
Bitmap bt = BitmapFactory.decodeFile(path, op);
return bt;
}

// 按寬高壓縮載入圖片
public static Bitmap getBitmap(String path, int width, int heigh) {
Options op = new Options();
op.inJustDecodeBounds = true;
Bitmap bt = BitmapFactory.decodeFile(path, op);
int xScale = op.outWidth / width;
int yScale = op.outHeight / heigh;
op.inSampleSize = xScale > yScale ? xScale : yScale;
op.inJustDecodeBounds = false;
bt = BitmapFactory.decodeFile(path, op);
return bt;
}

// 按寬高壓縮載入圖片方法2
public static Bitmap getBitmap2(String imageFilePath, int displayWidth,
int displayHeight) {
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);

// 编码后bitmap的宽高,bitmap除以屏幕宽度得到压缩比
int widthRatio = (int) FloatMath.ceil(bitmapOptions.outWidth
/ (float) displayWidth);
int heightRatio = (int) FloatMath.ceil(bitmapOptions.outHeight
/ (float) displayHeight);

if (widthRatio > 1 && heightRatio > 1) {
if (widthRatio > heightRatio) {
// 压缩到原来的(1/widthRatios)
bitmapOptions.inSampleSize = widthRatio;
} else {
bitmapOptions.inSampleSize = heightRatio;
}
}
bitmapOptions.inJustDecodeBounds = false;
bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);
return bmp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: