package fragment.bwie.com.lianxi05;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView image_tu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image_tu = (ImageView) findViewById(R.id.image_tu);
}
public void erCi(View view){
// Uri parse = Uri.parse(Environment.getExternalStorageDirectory() + "/aaa.jpg");
// image_tu.setImageURI(parse);
//地址注意,一定要写好 我的是放在images文件夹里
Bitmap bitmap = getBitmap(Environment.getExternalStorageDirectory() + "/images/aaa.jpg" , 320 , 480);
image_tu.setImageBitmap(bitmap);
}
private Bitmap getBitmap(String s, int width, int height) {
BitmapFactory.Options options = new BitmapFactory.Options();
//设置只加载边框
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(s , options);
//拿到边框的宽高
int outWidth = options.outWidth;
int outHeight = options.outHeight;
//计算缩放的比例
int scaleX = outWidth/width;
int scaleY = outHeight/height;
//初始化压缩比例
int sampleSize = 1;
if (scaleX > scaleY && scaleY > 1){
sampleSize = scaleX;
}else if (scaleY > scaleX && scaleX > 1){
sampleSize = scaleY;
}
//第二次,根据比例进行压缩,并且压缩图片的质量
options.inJustDecodeBounds = false;
//设置压缩的比例
options.inSampleSize = sampleSize;
//设置图片的质量...Bitmap.Config.RGB_565一个像素点在内存中占有2个字节...Bitmap.Config.ARGB_8888占有四个字节
options.inPreferredConfig = Bitmap.Config.RGB_565;
//以指定的选项解码图片,,,返回
return BitmapFactory.decodeFile(s , options);
}
//清单文件要加上这两个权限---(读写的权限) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
}