关于ImageView加载出现OOM问题

原创 2015年07月08日 21:40:35

略感蛋疼,一直以为应该不是这个问题的,所以调试了一下午,后来测试了下如果在XML里面改变ImageView的src话会出现什么问题

结果如我预料,仍然是只能显示部分图片,因为之前有运行成功了,我也不清楚怎么回事的,所以一直以为是参数设置那里的问题,

弄的我纠结了这么久,下次再也不会出这么愚蠢的问题了、、、

所以解决办法就是换小一点的图片,因为内存问题,毕竟ImageView不适合用于图片很大很多的情况

附上源代码:

package com.example.question9;

import android.support.v4.app.Fragment;
import android.R.integer;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends Activity {

	public static ImageView iv = null;

	Button bt_pre;
	Button bt_next;
	Button bt_first;
	Button bt_end;

	static int[] Image_id = new int[] { R.drawable.ta, R.drawable.tb,
			R.drawable.tc, R.drawable.td, R.drawable.te, R.drawable.tf,
			R.drawable.tg, };

	static int flag = 0;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		bt_first = (Button) findViewById(R.id.button1);
		bt_pre = (Button) findViewById(R.id.button2);
		bt_next = (Button) findViewById(R.id.button3);
		bt_end = (Button) findViewById(R.id.button4);

		iv = (ImageView) findViewById(R.id.imageView1);

		// View.OnClickListener change = new OnClickListener() {
		//
		// @Override
		// public void onClick(View arg0) {
		// // TODO Auto-generated method stub
		// if(arg0 == bt_first) {
		// iv.setImageResource(Image_id[0]);
		// flag = 0;
		// }
		// else if(arg0 == bt_pre) {
		// flag = (flag-1+Image_id.length)%Image_id.length;
		// iv.setImageResource(Image_id[1]);
		// }
		// else if(arg0 == bt_next) {
		// flag = (flag+1+Image_id.length)%Image_id.length;
		// iv.setImageResource(Image_id[2]);
		// Log.i("exp", "nihaoniaho"+flag);
		// }
		// else if(arg0 == bt_end) {
		// iv.setImageResource(Image_id[6]);
		// flag = 6;
		// }
		// }
		// };
		//
		// bt_first.setOnClickListener(change);
		// bt_pre.setOnClickListener(change);
		// bt_next.setOnClickListener(change);
		// bt_end.setOnClickListener(change);

		bt_first.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				iv.setImageResource(Image_id[0]);
				flag = 0;
				Toast.makeText(MainActivity.this, "第  "+(flag+1)+" 张图片", Toast.LENGTH_SHORT).show();
			}
		});

		bt_pre.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {

				// TODO Auto-generated method stub
				flag = (flag-1+Image_id.length)%Image_id.length;
				iv.setImageResource(Image_id[flag]);
				Toast.makeText(MainActivity.this, "第  "+(flag+1)+" 张图片", Toast.LENGTH_SHORT).show();
			}
		});

		bt_next.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {

				// TODO Auto-generated method stub
				flag = (flag+1+Image_id.length)%Image_id.length;
				iv.setImageResource(Image_id[flag]);
				Toast.makeText(MainActivity.this, "第  "+(flag+1)+" 张图片", Toast.LENGTH_SHORT).show();
			}
		});

		bt_end.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {

				// TODO Auto-generated method stub
				iv.setImageResource(Image_id[6]);
				flag = 6;
				Toast.makeText(MainActivity.this, "第  "+(flag+1)+" 张图片", Toast.LENGTH_SHORT).show();
			}
		});

	}
}


版权声明:转载请注明出处

相关文章推荐

[安卓开发] ImageView加载图片内存溢出oom解决方案

工具类加一个静态方法: /** * 以最省内存的方式读取本地资源的图片 * @param context 上下文 * @param resId 资源Id ...

解决加载图片OOM 方法汇总

加载图片出现OOM的情况一般有两个,     一、图片过大     二、图片过多 首先来看下第一种情况:     简单的一句话就能造成          Bitmap bitmap ...
  • abcdnml
  • abcdnml
  • 2014年11月13日 01:56
  • 284

Android高效加载图片,有效避免程序OOM

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出...

加载Drawable图片时出现的oom问题

oom问题全称为out of memory (内存溢出),指在加载资源时,资源所占空间超过了应用程序分配的内存空间。 今天在做射击游戏的项目时,加载了20多张图片做了一个animationDraw...

好用的单或多图片加载不会出现OOM

  • 2013年10月24日 10:29
  • 3.27MB
  • 下载

如何避免图像加载OOM 内存溢出 的问题

OOM 现象通常出现在用到很多图片  或者很大图片的APP开发中,就是 我们的APP要申请一块内存在装图片的时候  。系统觉得已经够用了  其实肯定是不够用的。他不愿意给我们的APP 好、更多的内存 ...

Android加载大图OOM问题

最近做了一个项目,花费了不少的时间,最主要的问题就是出现在了OOM内存溢出上,而且还主要在图片读取展示上最严重,真心很郁闷,最早开始的时候使用的是Volley加载的图片,不行,还是会出现溢出的问题,当...
  • cmwly
  • cmwly
  • 2016年04月25日 12:15
  • 280

带你从头到尾梳理大图片加载OOM处理问题

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ImageView加载出现OOM问题
举报原因:
原因补充:

(最多只允许输入30个字)