android 加载图片到内存(缩放)

来源:互联网 发布:医疗器械软件研究 编辑:程序博客网 时间:2024/05/02 11:02
package com.example.looding;


import java.io.File;


import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity {
private ImageView iv;
private Button button;
File file;
private String TAG=this.getClass().getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.iv);
button=(Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
file=new File(Environment.getExternalStorageDirectory().toString()+"");
}*/
//1.获取手机的宽高
WindowManager windowManager=getWindowManager(); 
int phonewidth=windowManager.getDefaultDisplay().getWidth();
int photoheght=windowManager.getDefaultDisplay().getHeight();
Log.d(TAG, "phonewidth"+phonewidth+"+++++"+"photoheght"+photoheght);
//2.获取图片的宽高
BitmapFactory.Options opts=new Options();//解析位图的附加条件
opts.inJustDecodeBounds=true;//设置为true的话不加载到内存,就是不去解析位图,知识获取它的头部信息。
Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
int imagewidth=opts.outWidth;
int imageheight=opts.outHeight;
//3.获取缩放的比例
int dx=imagewidth/phonewidth;
int dy=imageheight/photoheght;
Log.d(TAG, "dx"+dx+"+++++"+"dy"+dy);
int scale=1;
if(dx>dy&&dx>1){//按水平方向缩小
scale=dx;
Log.d(TAG, String.valueOf(scale));
}
if(dy>dx&&dy>1){//按竖直方向缩小
scale=dy;
}
//4.显示图片
opts.inSampleSize=scale;
opts.inJustDecodeBounds=false;
bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
iv.setImageBitmap(bitmap);
}
});

}


}
0 0
原创粉丝点击