Android 不同版本下Bitmap创建差异

本文探讨了一个Android应用在不同版本下Bitmap处理的差异,导致在Android4.1系统上出现异常。问题源于同一Bitmap在4.1版本被错误地回收,引发程序崩溃。作者提醒开发者注意Android SDK更新可能带来的变化,并建议在升级后审阅代码以避免类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.问题描述

一个雪花效果,在Android4.0以下系统正常运行,但是在Android4.1上异常退出。

2.问题定位

看一段代码

    private Bitmap		mflakeImage		= null;
    private Bitmap		mflakeImageTemp		= null;
    mflakeImageTemp = BitmapFactory.decodeResource(resources, R.drawable.snow_1);
    mflakeImage = Bitmap.createScaledBitmap(this.mflakeImageTemp, mflakeImageTemp.getWidth(),
    mflakeImageTemp.getHeight(), true);

    Log.d("cjp", "mflakeImageTemp=" + mflakeImageTemp);
    Log.d("cjp", "mflakeImage=" + mflakeImage);
    this.mflakeImageTemp.recycle();
    Log.d("cjp", "mflakeImage.isRecycled()=" + mflakeImage.isRecycled());

上面是一段简化后的代码,用于说明问题就行了:即从一张Bitmap,利用createScaledBitmap得到其另一张缩放的Bitmap, 但是其实并没有缩放!

上段代码在Android4.0以下版本,mflakeImageTemp和mflakeImage是不同的两张图,但是在Android4.1上却是一张图<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值