关于ImageView加载出现OOM问题
略感蛋疼,一直以为应该不是这个问题的,所以调试了一下午,后来测试了下如果在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问题的更多相关文章
- Android之批量加载图片OOM问题解决方案
一.OOM问题出现的场景和原因 一个好的app总少不了精美的图片,所以Android开发中图片的加载总是避免不了的,而在加载图片过程中,如果处理不当则会出现OOM的问题.那么如何彻底解决这个问题呢?本 ...
- Android开发 - ImageView加载Base64编码的图片
在我们开发应用的过程中,并不是所有情况下都请求图片的URL或者加载本地图片,有时我们需要加载Base64编码的图片.这种情况出现在服务端需要动态生成的图片,比如: 二维码 图形验证码 ... 这些应用 ...
- ImageView加载长图(适用不需要缩放的情况)
此案例适用于加载网络长图且图片的宽和高已知的情况.由于ImageView加载图片有一个4096*4096的限制,所以对于巨长图的加载比较麻烦,需要我们自己去手动处理. 有两种解决方案:第一种就是比较l ...
- Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框
Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框 在Android早期的开发中,如果涉及到圆形图片的处理,往往需要借助于第三方的实现,见附录文章1,2.And ...
- ViewPager做图片浏览器,加载大量图片OOM的问题修正
/** * @author CHQ * @version 1.0 * @date 创建时间: 2016/7/26 17:18 * @parameter * @return * 图片查看器 * //可以 ...
- Android加载图片OOM错误解决方式
前几天做项目的时候,甲方要求是PAD (SAMSUNG P600 10.1寸 2560*1600)的PAD上显示高分辨率的大图片. SQLITE採用BOLD方式存储图片,这个存取过程就不说了哈,网上一 ...
- android 加载图片oom若干方案小结
本文根据网上提供的一些技术方案加上自己实际开发中遇到的情况小结. 众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视手机而定).一般我们可以通过获取当 ...
- imageview加载本地和网络图片
ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上. 在UI xml定义一个ImageView如下: public void onCreate(Bundle savedI ...
- Android应用程序开发之图片操作(二)——工程图片资源的加载及OOM的处理
(一)工程图片资源的加载方法 在Android应用程序开发之图片操作(一)中,详细说明了如何操作各种资源图片,只是有的没有附上示例代码,在此,我将针对项目工程中的图片资源的显示加载进行说明.官方说明, ...
随机推荐
- The formatter threw an exception while trying to deserialize the message in WCF
有一个WCF应用, 主要功能是存储doc, txt等类型文件到database,当文件的大小在16kb之内,调用WCF service能正常工作:但如果文件大小超出16KB之外, 它将抛出这样一个错误 ...
- node.js使用经验记录
MongoDB使用经验: 有时不知道MongoDB的错误码代表什么,那有这个链接: https://github.com/mongodb/mongo/blob/master/src/mongo/bas ...
- C++访问权限【原创】
可以访问private的有:1.本类的函数:2.友元函数. 可以访问protected的有:1.本类的函数:2.子类函数:3.友元函数. 可以访问public的有:1.本类的函数和对象:2.子 ...
- poj A Round Peg in a Ground Hole
http://poj.org/problem?id=1584 #include<cstdio> #include<cstring> #include<cmath> ...
- Delphi应用程序的调试(十)调试器选项(在IDE中不要使用异常)
可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...
- android 状态栏(StatusBar)
一.SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk 文件 , 命名为 System ...
- SDUT2087 离散事件模拟-银行管理(模拟)
题目链接. 分析: 模拟. 果然模拟什么的最讨厌了. 用e1,e2分别记录队列1,队列2的结束时间. 每个结点的s记录开始时间,e一开是记录逗留时间,进队列的时候,改成离开的时间.时刻记录总时间就可以 ...
- freemarker基本知识总结
1.取出内容 ${} 例如,${document.fileName} 2. <ul> <#list cms.documents("channel=XXXX") a ...
- C#文本转语音并保存wav和MP3文件
回顾上次写博客至今都有4个多月了,最近工作比较的忙没时间写博文.以后会多坚持写博文,与大家分享下最近遇到的问题.最近因为项目需要,研究了下用C#开发TTS.下面把大体的思路给大家说说,希望对大家有所帮 ...
- Linux网卡驱动架构分析
一.网卡驱动架构 由上到下层次依次为:应用程序→系统调用接口→协议无关接口→网络协议栈→设备无关接口→设备驱动. 二.重要数据结构 1.Linux内核中每一个网卡由一个net_device结构来描述. ...