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

Android中当加载大图片时进行缩放

2016-02-18 16:29 549 查看
[1]Android中采用png格式的图片 , 使用 A(透明度)RGB 每一个像素占4byte , 所以所Android中图片的大小只与像素大小有关 , 且Android中的图片色彩更加丰富 .

package jacky.loadbigimage;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

private ImageView iv_bigimage;
private int width;
private int height;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_bigimage = (ImageView) findViewById(R.id.iv_bigimage);

//获取手机分辨率
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
Point outSize = new Point();
wm.getDefaultDisplay().getSize(outSize);
//方法一:获取手机分辨率,过时,适用于低版本API
//                    int height = wm.getDefaultDisplay().getHeight();
//                    int width = wm.getDefaultDisplay().getWidth();
////方法二:获取手机分辨率,API 13以上才支持
width = outSize.x;
height = outSize.y;
System.out.println("width:" + width + "---" + "height:" + height);
}

public void click(View v) {
//Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/waibo.jpg");
//获取图片的分辨率
BitmapFactory.Options opts = new BitmapFactory.Options();
BitmapFactory.decodeFile("/mnt/sdcard/waibo.jpg", opts);
int imgWidth = opts.outWidth;
int imgHeight = opts.outHeight;
//计算缩放比
int scale=1;
int scaleX=imgWidth/width;
int scaleY=imgHeight/height;
//scale = (scaleX >= scaleY&&scaleX>scale) ? scaleX : scaleY;
if (scaleX>scaleY&&scaleX>scale) {
scale=scaleX;
}else if (scaleY > scaleX && scaleY > scale) {
scale=scaleY;
}
System.out.println("scaleX:" + scaleX + "---" + "scaleY:" + scaleY+"---"+scale);
//安装缩放比显示
opts.inSampleSize=scale;
//安装缩放比进行解析位图
opts.inJustDecodeBounds=false;
Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/waibo.jpg", opts);
//显示图片
iv_bigimage.setImageBitmap(bitmap);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 图片