public void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (reMap) {
canvas.drawColor(Color.GRAY);
Bitmap bm = null;
bm = drawImage();
int x = bm.getWidth();
int y = bm.getHeight();
bitmap = Bitmap.createBitmap(bm, wn, hn, x > 480 - wn ? 480 : x,
y > 800 - hn ? 800 : y);
if (bm.isRecycled() == false) {
bm.recycle();
System.gc();
}
reMap = false;
}
canvas.drawBitmap(bitmap, 0, 0, null);
} private Bitmap drawImage() {
if (xm < 7 && ym < 11) {
return map[0][0];
}
Bitmap bm = Bitmap.createBitmap(560, 880, Config.RGB_565);
Canvas canvas = new Canvas(bm);
draw(canvas, 80, 11, 7);
return bm;
} private void draw(Canvas canvas, int n, int h, int w) {
Bitmap bm = null;
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
bm = Bitmap.createScaledBitmap(map[yn + i][xn + j], n, n, true);
canvas.drawBitmap(bm, j * n, i * n, null);
}
}
if (bm.isRecycled() == false) {
bm.recycle();
System.gc();
}
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
}
这段代码是对一组小图片拼接成一个大图片的
但是有个很奇怪的问题???
debug模式运行内存不溢出
正常跑第一次不溢出 第二次就溢出了
求解??????????
super.onDraw(canvas);
if (reMap) {
canvas.drawColor(Color.GRAY);
Bitmap bm = null;
bm = drawImage();
int x = bm.getWidth();
int y = bm.getHeight();
bitmap = Bitmap.createBitmap(bm, wn, hn, x > 480 - wn ? 480 : x,
y > 800 - hn ? 800 : y);
if (bm.isRecycled() == false) {
bm.recycle();
System.gc();
}
reMap = false;
}
canvas.drawBitmap(bitmap, 0, 0, null);
} private Bitmap drawImage() {
if (xm < 7 && ym < 11) {
return map[0][0];
}
Bitmap bm = Bitmap.createBitmap(560, 880, Config.RGB_565);
Canvas canvas = new Canvas(bm);
draw(canvas, 80, 11, 7);
return bm;
} private void draw(Canvas canvas, int n, int h, int w) {
Bitmap bm = null;
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
bm = Bitmap.createScaledBitmap(map[yn + i][xn + j], n, n, true);
canvas.drawBitmap(bm, j * n, i * n, null);
}
}
if (bm.isRecycled() == false) {
bm.recycle();
System.gc();
}
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
}
这段代码是对一组小图片拼接成一个大图片的
但是有个很奇怪的问题???
debug模式运行内存不溢出
正常跑第一次不溢出 第二次就溢出了
求解??????????
解决方案 »
- 在eclipse中创建android的项目时提示错误,未找到r.java
- adroid 设置---快捷方式
- 如何打印init.c中的log
- eclipse3.7.1离线配置adt12老是不成功,十分着急,求高手解答,万分感谢!
- 打开系统游览器.
- 360的技术是不是很牛X?
- 安卓求助,滚动的区域内onDraw()再填充Bitmap的显示问题?
- 远程文字输入如何实现
- android 图片按控件的大小等比例缩放的问题,路过的大神们帮帮忙。
- Android App开发后,apk内容如何让别人无法查看?
- ListView怎么往里面添加ProgreeBar 啊?????急等
- Android factory data reset
一般是第一次完了资源没释放掉,第二次又运行,到达了8M的上限我经常遇到这个问题,但是真不知道怎么解决的好,上次有高人指点说,JAVA层的资源释放掉了,但是NDK C层的资源没释放掉,导致这个问题反正貌似到目前为止没什么很靠谱的解决方案,一般都是用弱引或者软引的,但是效果也不是很好祝君好运,有什么好的办法了记得给我说下
汗 那为什么用debug运行确没有问题了......这个问题真的很头大
这一大堆的图片处理 8M这个都不知道怎么搞
自己跑就报错
吐血掉.......