您的位置:首页 > 移动开发 > Android开发

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

2015-08-31 18:33 603 查看
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);
}
});

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: