import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Display; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView iv = (ImageView) findViewById(R.id.iv); //得到Options選項 BitmapFactory.Options options = new BitmapFactory.Options(); //找到sd卡上的圖片 String s = Environment.getExternalStorageDirectory().getPath() + "/b3.jpg"; //二次採樣的第一步 /** * options.inJustDecodeBounds = true 設置爲true只加載圖片的寬高,不加載內容 */ options.inJustDecodeBounds = true; //加載圖片寬高 邊界 BitmapFactory.decodeFile(s, options); //獲取圖片的寬高 int outWidth = options.outWidth; int outHeight = options.outHeight; //獲取手機屏幕的寬高 Display display = getWindow().getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); //圖片與手機屏幕寬高進行比對 int scale = 0; int scaleX = outWidth / width; int scaleY = outHeight / height; scale = scaleX > scaleY ? scaleX : scaleY; //二次採樣第二步 //加載圖片的內容 options.inJustDecodeBounds = false; options.inSampleSize = scale; Bitmap bitmap = BitmapFactory.decodeFile(s, options); // Bitmap bitmap = BitmapFactory.decodeFile(path); iv.setImageBitmap(bitmap); } }
二次採樣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.