Android中图片的处理是一个非常重要的问题,当我们遇到一张图片占用内存过大时可以使用二次采样方法来处理。
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv=(ImageView) findViewById(R.id.iv);
iv.setImageBitmap(getImage());
}
/**图片二次采样*/
public Bitmap getImage(){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.m9,options);
int width = options.outWidth;
/**原图片的宽高屏幕的宽高*/
options.inSampleSize = width/ getWindowManager().getDefaultDisplay().getWidth();
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(getResources(), R.drawable.m9,options);
}
}