Android 加载大图片

来源:互联网 发布:手机迅雷么打开php文件 编辑:程序博客网 时间:2024/04/28 05:10
//当加载一张大图片的时候,会报内存溢出,所以我们必须把图片进行缩放public class MainActivity extends Activity {private ImageView imageView;private int width;private int height;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView = (ImageView) findViewById(R.id.imageView);// 获取手机屏幕的分辨率 宽高Display display = getWindowManager().getDefaultDisplay();// 得到屏幕的宽和高width = display.getWidth();height = display.getHeight();System.out.println("窗体的高度:" + height);System.out.println("窗体的宽度:" + width);Options options = new Options();// 设置解析器,不会真正的解析这个位图 而是解析这个图片的out输出信息(宽度,高度)options.inJustDecodeBounds = true;BitmapFactory.decodeFile("/sdcard/mm.jpg", options);int picHeight = options.outHeight;int picWidth = options.outWidth;System.out.println("图片的高度:" + picHeight);System.out.println("图片的高宽度:" + picWidth);int scaleX = picWidth / width;int scaleY = picHeight / height;System.out.println("水平缩放的比例:" + scaleX);System.out.println("垂直缩放的比例:" + scaleY);int scale = 1;// 判断水平缩放还是垂直缩放if (scaleX > scaleY && scaleY > 1) {// 水平缩放scale = scaleX;}if (scaleY > scaleX && scaleX > 1) {// 垂直缩放scale = scaleY;}// 在这里去真正解析这个问题options.inJustDecodeBounds = false;// 缩放的比例options.inSampleSize = scale;Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/mm.jpg", options);imageView.setImageBitmap(bitmap);;}}

0 0
原创粉丝点击