博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android多媒体编程--加载大图片
阅读量:5884 次
发布时间:2019-06-19

本文共 2140 字,大约阅读时间需要 7 分钟。

如果一个图片很大的话加载到屏幕中就可能造成内存溢出,为了解决这个问题,我们把一个很大的图片进行等比缩放至最适合屏幕的图片。

怎么来进行缩放呢?

图片的/屏幕宽=比例1;

图片高/屏幕高=比例2;

然后来看哪个比例大用哪个

package com.example.image;import android.os.Bundle;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapFactory.Options;import android.view.Display;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.WindowManager;import android.widget.ImageView;public class MainActivity extends Activity {    private ImageView img;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        img = (ImageView) findViewById(R.id.img);        findViewById(R.id.btn).setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                Options options = new Options();                //请求图片但不申请内存                options.inJustDecodeBounds = true;                BitmapFactory.decodeFile("sdcard/dog.jpg",options);                //获取图片宽高                int imgWidth = options.outWidth;                int imgHeight = options.outHeight;                //获得屏幕宽高                Display dis = getWindowManager().getDefaultDisplay();                int w = dis.getWidth();                int h = dis.getHeight();                //算出图片和屏幕缩放的比例                int widthB = imgWidth/w;                int heightB = imgHeight/h;                int result = 1;                //取大的倍数                if(widthB>=heightB && widthB>1){                    result = widthB;                                    }else if(widthB
1){ result = heightB; } //设置缩放比例 options.inSampleSize=result; //请求内存 options.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeFile("sdcard/dog.jpg",options); img.setImageBitmap(bitmap); } }); } }

 

转载于:https://www.cnblogs.com/84126858jmz/p/4973497.html

你可能感兴趣的文章
eclipse智能配置
查看>>
安装Scrapy遇到的问题处理
查看>>
个人作业——软件产品案例分析
查看>>
Java学习:方法重载的使用规则
查看>>
ASP.NET MVC 防止CSRF攻击
查看>>
EF:无法检查模型兼容性,因为数据库不包含模型元数据。
查看>>
0和5
查看>>
C# WinFrom一些技术小结
查看>>
hdu5001 Walk 概率DP
查看>>
模拟select控件&&显示单击的坐标&&用户按下键盘,显示keyCode
查看>>
Mac-OSX下Ruby更新
查看>>
jsp九个内置对象
查看>>
[Python笔记][第一章Python基础]
查看>>
Bloomberg SEP 12.x 迁移小记
查看>>
生日小助手V1.1发布了——拥有更整齐的信息列表
查看>>
代理模式
查看>>
Qt 学习(1)
查看>>
MFC CEdit改变字体大小的方法
查看>>
java 中文数字排序方法
查看>>
centos 关于防火墙的命令
查看>>