package com.itheima40.loadbigpic;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.view.Display;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
public class MainActivity extends Activity {
private EditText etPath;
private ImageView ivIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加載控件---獲取輸入路徑的文本框和顯示圖片的ImageView
etPath = (EditText) findViewById(R.id.et_path);
ivIcon = (ImageView) findViewById(R.id.iv_icon);
}
//按鈕的點擊事件
/**
* 縮放加載
* @param v
*/
public void scaleLoad(View v) {
String path = etPath.getText().toString();
Options opts = new Options();
opts.inJustDecodeBounds = true; // 設置爲true, 加載器不會返回圖片, 而是把Options對象中以out開頭的字段給設置了.
BitmapFactory.decodeFile(path, opts);
// 得到了圖片的寬和高
int imageWidth = opts.outWidth;
int imageHeight = opts.outHeight;
System.out.println("圖片的寬和高: " + imageWidth + " * " + imageHeight);
// 獲取屏幕的寬和高
Display display = this.getWindowManager().getDefaultDisplay(); // 獲取默認窗體顯示的對象
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
System.out.println("屏幕的寬和高: " + screenWidth + " * " + screenHeight);
// 計算縮放比例
int widthScale = imageWidth / screenWidth;
int heightScale = imageHeight / screenHeight;
//選擇比例大的那個進行縮放
int scale = widthScale > heightScale ? widthScale:heightScale;
System.out.println("縮放比例: " + scale);
// 使用計算出來的比例進行縮放
opts.inJustDecodeBounds = false; // 指定加載可以加載出圖片.
opts.inSampleSize = scale;
Bitmap bm = BitmapFactory.decodeFile(path, opts);
// 顯示到ImageView控件上
ivIcon.setImageBitmap(bm);
}
}