【史上最简单】android硬件加速——关于图片过大无法显示,直接变黑色问题

最近项目中做了一个头像选择功能,没有使用系统自带的裁剪功能,自己写的图片裁剪,发现在裁剪全景图片时候出现了问题,无法正常显示,图片变成了黑色。

在ecplice中没有报错!!!打印出一条黄色警告语句:

Bitmap too large to be uploaded into a texture (440x2302, max=2048x2048)  


查了一些资料,出现的原因:

从Android3.0 (API level 11)开始,Android的2D显示管道被被设计得更加支持硬加速了,并且程序默认支持加速,即

 android:hardwareAccelerated="true"

硬件加速使用GPU承担了所有在View的canvas上执行的绘制操作。

硬件加速是个好东西,可以让ListView、WebView滑动的更流畅,但是也总是会出现一些莫名其妙的的问题。

1、edittext文件重叠
2、大图图片显示不出来
。。。
解决方法:

1、直接关闭硬件加速

整个应用application:

 <application
        android:hardwareAccelerated="false"
    。。。。。。>


单个activity:

<activity
                    android:hardwareAccelerated="false"

。。。。。。>

2、将图片分成不同的块,每次加载需要的块。

android提供了一个方法:

public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)
public   Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)

参考:、
http://api.apkbus.com/reference/android/graphics/BitmapRegionDecoder.html








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值