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

Android无法显示超大图问题的探索        最近在做图片浏览功能时遇到了一个很蛋疼的问题,在开启硬件加速情况下,超大图无法正常显示(图的长宽有一个大于9000),而且程序不会crash,只是图片加载不出来,View显示为黑色。通过查看日志,发现系统打印出了下面的内容:   W OpenGLRenderer( 4014): Bitmap too large to be uploaded into a texture (6... 阅读详情

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

在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








Android P 图像显示系统(三)Android HWUI 绘制流程 Android中,绘图的API很多,比如2D的绘图skia;3D的绘图OpenGLES,Vulkan等。Android 开始,的View系统中,多数都是采用2D的模式的View Widget,比如绘制一张Bitmap图片,显示一个按钮等。随着Android系统的更新,和用户对视觉效果的追求,以前的这套2D View系统,不仅不能满足要求,而且渲染非常的慢。所以Android一方面完善对3D的API... 阅读详情

相关推荐

在Android开发中,锁屏后截图变黑的原因

13引入了一项新功能,当用户在使用屏幕截屏功能时,如果在密码界面,截取的图像将显示为黑色。在这种情况下,当用户尝试对这些应用进行截屏时,系统会返回一张黑色的画面,因为这些应用的内容并未被渲染到系统的显示缓冲区中‌。‌使用FLAG_SECURE属性‌:在Activity的onCreate方法中添加FLAG_SECURE标志,可以禁止对该Activity的截屏操作。2‌.特殊应用或界面‌:有些特殊应用或界面在截屏时可能会呈现黑色。这样,任何在该界面上的截屏操作都会返回一个黑色屏幕‌。

m0_55975853的博客 1161

Android5.1以上webView中图片显示过大的解决方式

当我们使用webView时可能遇到适配问题,图片过大以至于超出屏幕 1. 在android4.4以前是可以通过直接对webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);来设置加载的内容适应屏幕的宽度的, 2. 但是在Android高版本中你会发现通过第一种方式来设置是没有生效的,所以在高版本中推荐第二...

FrancisBingo的博客 3564

Android图片合成实战:一分钟快速掌握核心技术

回过头看,Android图片合成远不止“贴几张图”那么简单。它牵扯到:内存管理(Native堆、OOM预防)图形学基础(矩阵变换、混合模式)性能调优(异步、缓存、硬件加速)用户体验(响应速度、视觉保真)每一个环节都可能成为App崩溃的导火索,也可能成为提升转化率的关键细节。所以,下次当你接到“做个分享海报”的需求时,别再说“这很简单”。你应该微笑着说:“当然可以,不过我们需要考虑分辨率适配、内存安全、透明通道处理、硬件加速兼容性和输出压缩策略……”

weixin_33750664的博客 995

Android大图绘制——硬件加速限制分析与方案

最近在做PhotoView图片的效果定制时,在加载展示图片情境下,统一把图片按照屏幕宽度作为固定值,计算宽高的缩放比然后对Bitmap进行伸缩,这样可以避免一般情况下的大图加载产生——OOM和trying to draw too large(xxxbytes) bitmap的问题。 当即便这样,也还是会有加载的图片尺寸超过限制的时候,就经常会看到这个warning,图片显示不出来:Bitmap t

David-Kuper的专栏 3505

基于Java的高校学生信息管理系统的设计与实现(论文+源码)

可以对本系统的数据进行良好的封装,Java可以对不想被访问的数据进行良好的隐藏,具备平台无关性,可移植,更加可靠与安全,具备多线程支持,进行网络交互更容易。它支持本系统的B/S模式。开发效益方面,本系统一旦开发成功并且面向社会,就会让大多数的学生教师体会到便利办公的乐趣,随之促进提高本系统的使用率和经济利润,所以在经济方面,对于零成本开发且高利润的学生管理系统是可行的。学生可以在学生端进行选课,查看自己的成绩,教师可以在教师端查看所任课程的选课情况,对学生成绩进行录入,对所任的课程进行结课等操作。

2402_82389843的博客 1092

在unity urp项目中 通过图片创建材质(透明光晕)

unity中通过图片创造材质(urp管道)

m0_49721415的博客 1540

android studio 引入高德地图显示白屏或者黑屏问题

在高德地图api申请一个就可以了,在AndroidManifest.xml中加入 <application> </application>中。对于导航白屏,语音播报啥的都好着呢,但是就是地图上不显示。各种原因都想了始终没有想到我之前关闭了硬件加速,真不知原来导航和硬件加速有关系。清单文件中把硬件加速打开:android:hardwareAccelerated="true" 就好了。2.so文件不对,最简单的解决方法,下载一个高德地图的demo然后复制粘贴就可以。

weixin_56843766的博客 3120

R语言下载包报错?可能是IE浏览器在搞鬼!手把手教你修复(附CRAN镜像选择指南)

本文深入解析了R语言下载包时常见的网络报错问题,特别是Windows系统中因Internet Explorer代理设置导致的连接失败。文章提供了从重置IE配置、排查防火墙到优化CRAN镜像选择的完整解决方案,并附有详细的配置指南和自动化诊断脚本,帮助用户彻底解决R包安装难题。

weixin_29056781的博客 742

Android 图片选择与裁剪项目常见问题解决方案

Android 图片选择与裁剪项目常见问题解决方案 1. 项目基础介绍 该项目是一个开源的Android应用程序,它提供了从相册或相机选择图片并进行裁剪的功能。主要使用Java语言开发,并且使用了uCrop库来实现图片的裁剪功能。 2. 新手常见问题及解决步骤 问题一:项目依赖配置不正确 问题描述: 新手在尝试将项目集成到自己的工程中时,可能会遇到依赖配置错误,导致项目无法编译。 解决步骤: 确...

gitblog_00298的博客 400

【人工智能】提示词避坑指南:为什么大模型越让它“禁止”,它越要“唱反调”?

和 AI 沟通就像和聪明但直脑筋的工科生说话——

奶爸的编程之路,也就一周冷个三天 224

【AI 赋能:Python 人工智能应用实战】16. BERT微调实战:中文新闻分类全流程(附模型蒸馏+ONNX部署完整代码)

中文新闻分类是NLP领域的经典实用任务,BERT模型凭借双向上下文建模能力,能有效解决中文歧义与长文本依赖问题,但存在推理速度慢、资源占用高的痛点。本文以THUCNews中文新闻数据集为核心,提供从数据预处理、BERT微调、模型蒸馏到生产部署的全流程实操指南。首先详解THUCNews的多编码读取与清洗(解决gbk/utf-8兼容问题);然后实现BERT微调,加入早停机制与混淆矩阵可视化,验证准确率达93.8%;接着用DistilBERT完成模型蒸馏,在仅损失0.6%准确率的前提下,将推理速度提升2.7倍。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1098

android 显示多个图片不显示,Android中超大图片无法显示的问题解决

发现问题最近在做图片浏览功能时遇到了一个很蛋疼的问题,在开启硬件加速情况下,超大图无法正常显示(图的长宽有一个大于9000),而且程序不会crash,只是图片加载不出来,View显示为黑色。通过查看日志,发现系统打印出了下面的内容:W OpenGLRenderer( 4014): Bitmap too large to be uploaded into a texture (600x9518, m...

weixin_39768388的博客 709

FPGA/IC 秋招笔试/面试题总结(续)

FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在

Crazzy_M的博客 2万+

android canvas bitmap去底部黑色,Android Bitmap擦除后留下黑色背景(硬件加速相关)...

需求和问题需求是在一个自定义view中放置两张重叠的bitmap,然后局部擦除顶部的那一张图,以此可以看到底部的图片。大致思路://底部的图片已经通过其他方式绘制完成canvas.drawBitmap(topBitmap, 0f, 0f, null)// 画笔的建立需要在onDraw外面执行,这里为了叙述方便才放在这里val clearPaint = Paint()clearPaint.xferm...

weixin_39729262的博客 987

079、LVGL基础控件:消息框(Msgbox)

《LVGL消息框控件深度解析与避坑指南》 文章深入剖析了LVGL消息框控件的核心特性和使用技巧。消息框本质是带按钮的模态容器,而非独立窗口。作者分享了创建消息框的正确姿势、标题/内容设置方法、安全的按钮事件处理方式(避免直接调用close函数导致栈溢出),并详细介绍了模态/非模态实现、样式自定义、动态更新等实用技巧。针对常见问题如内存管理、按钮数量限制、动画效果等给出了专业建议,特别强调了消息框作为用户交互关键环节的优化重要性,建议通过异步删除、合理父对象选择等方式提升稳定性。文章包含大量实际项目经验总结,

m0_50546716的博客 153

uniapp - 详细手机端h5网页调用手机摄像头进行二维码识别扫描,在uniapp的H5移动端微信网页平台中,在浏览器中调用手机扫码功能详细教程,识别二维码并获取扫描结果(完整示例源码,一键复制即用

uniapp,h5,手机端网页,H5手机网页,uniapp开发h5实现扫码功能,uniapp微信h5网页扫码sdk使用教程,uniapp h5网页如何实现浏览器扫码,uniapp扫码功能怎么兼容h5_uniapph5怎么做扫码功能,uniapp的手机网页如何实现扫二维码一维码,浏览器H5实现js扫码,H5调用摄像头和扫一扫功能,亲测可用,H5调用本地摄像头实现扫一扫,uni-h5项目解决扫码功能,uniapp实现微信H5扫码,解决uniapp在H5端使用不能扫码问题,uni-app的h5扫码(二维码、条形码

✅ 精选推荐文章 1万+

Androd加载大图片 不崩 但是显示黑屏的问题

发现问题 最近在做图片加载时,在开启硬件加速情况下,超大图无法正常显示(图的长宽有一个大于9000),而且程序不会crash,只是图片加载不出来,View显示为黑色。通过查看日志,发现系统打印出了下面的内容: 1 W OpenGLRenderer( 4014): Bitmap too large to be uploaded into a text

huyawenz的博客 3472

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

解决Android实现圆角效果在Android P以下成黑色

解决Android实现圆角效果在Android P以下成黑色 背景 项目中测试反馈在Android P以下图片边黑了。看了一下项目代码发现是自定义圆角图片View造成的,review 代码发现实现原理很简单。就是如下图绘制出四个黄色的角,盖在图片上就行了。(PS:图画的比较粗糙,大家见谅)

Mr_wzc的博客 2311

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Cannot generate texture from bitmap异常的解决方案

今天在写一个布局时,运行后报错,ImageView显示为黑色,无法加载图片,造成Cannot generate texture from bitmap异常,这个错误我是第一次看见,遂百度谷歌,查找到了一些解决方案:参考http://www.2cto.com/kf/201410/342644.html 其中提到可能是android 4.0之后系统开启了GPU硬件加速导致的,可通过关闭加速来解

迷尘乱心 1398

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android canvas 绘图 一闪一闪_Android图像显示系统(三)Android HWUI 绘制流程

Android中,绘图的API很多,比如2D的绘图skia;3D的绘图OpenGLES,Vulkan等。Android 开始,的View系统中,多数都是采用2D的模式的View Widget,比如绘制一张Bitmap图片,显示一个按钮等。随着Android系统的更新,和用户对视觉效果的追求,以前的这套2D View系统,不仅不能满足要求,而且渲染非常的慢。所以Android一方面完善对3D的API...

weixin_39565777的博客 1269

【Android填坑系列】 Android 5.0的坑

Android 5.0的坑:BitmapDrawable的getOpacity方法返回的值和以前不一样了,或者用法不一样了。 Webview的硬件加速有问题。 Service不知道怎么爬不起来了。

jezhee的专栏 1527

Chromium代码:实现GPU->GPU的直接图片传递,不需要通过CPU进行中转

commit0c4e9d8781aea6e52fdb4a7aee978817910c67ea authordongseong.hwang Thu Jan 08 20:11:13 2015 committerCommit bot Thu Jan 08 20:12:02 2015 media: Optimize HW Video to 2D Canvas copy. Currently,

cteng的专栏 2734

android 8新功能,Android 8.1又来了,10大新功能带你全面回顾

原标题:Android 8.1又来了,10大新功能带你全面回顾点击不知道粉粉们留意到没有,谷歌最新推出了Android 8.1系统,这次又有什么新亮点呢?让花花给大家介绍一下吧~据花花了解到,谷歌最新推出的Android 8.1系统,只不过是开发者预览版,还不是面向普通消费者用户,所以对于开发者来说意义更大一些。正式版的话,或将会在12月来临。 Android 8.1的主要新功能点有:神经网络AP...

weixin_28898707的博客 549

ios和Android常见的兼容问题

二十五:ios和Android常见的兼容问题 1.滑动不流畅问题,这个滑动不流畅好像局限于局部的滚动,建议都写成 全局滚动,在css样式中加上: body { -webkit-overflow-scrolling: touch; overflow-scrolling: touch; } 解决流畅度。 2.ios下 下拉 上滑 会出现出界情况 浏览器自带黑色背景色,解决方案: 使用 scroll...

m0_45043105的博客 2307

Android Xfermode图形混合模式详解与实践

图形混合是计算机图形学中的基础概念,指通过特定算法将多个图形源合成为单一输出的过程。Android平台通过Xfermode类实现了Porter-Duff等标准混合算法,支持16种不同的混合模式如SRC_OVER、MULTIPLY等。这种技术在UI开发中具有重要价值,能够实现圆形头像裁剪、图片倒影、橡皮擦等常见功能,同时也可用于创建高级视觉效果如动态模糊和粒子系统。合理使用Xfermode可以显著提升Android应用的视觉表现力,但需要注意硬件加速兼容性和内存优化等问题。

weixin_34184158的博客 318

Android图形混合技术:Xfermode与PorterDuff混合模式详解

图形混合是计算机图形学中的基础概念,指通过特定算法将多个图形源合成为单一图像的技术。其核心原理基于Porter-Duff混合算法,该算法定义了12种基础混合操作。在Android开发中,通过Xfermode类实现这一技术,特别适用于需要精细控制图像合成的场景。PorterDuff.Mode枚举提供了16种混合模式,包括SRC_OVER、SRC_IN等常用模式,能够实现圆形头像、图片遮罩等UI效果。合理使用Xfermode可以显著提升应用视觉效果,但需注意硬件加速兼容性问题。掌握这些图形混合技术,开发者能够实

weixin_34268310的博客 415
上一篇: 【史上最简单】android 自定义dialog中的接口回调
下一篇: java参数传递。传递值还是引用问题
是辉仔啊
博客等级 码龄12年 13粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值