首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置PixelFormat

设置PixelFormat
EN

Stack Overflow用户
提问于 2014-01-10 18:52:56
回答 2查看 3.6K关注 0票数 2

有人告诉我,调用getWindow().setFormat(PixelFormat.XXXX);应该将活动中窗口的像素格式设置为XXXX (例如,RGBA_8888)。我尝试在我的活动的getWindow().setFormat(PixelFormat.XXXX);方法中调用onCreate,但是无论我使用什么参数,显示的图像的特征都没有区别。特别是,我正在绘制一些位图,其中包含了一些在安卓设备上显示分带的细微的颜色变化。但是,无论我使用什么PixelFormat,我都不能使显带更好或更糟(例如,RGB_332看起来没有更糟)。我强烈怀疑getWindow().setFormat(PixelFormat.XXXX);根本没有任何效果-或者后来的一些代码正在改变格式,例如,当我创建一个画布时?还是看风景?还是在onResume上??

我可以确认,当我在我的开发PC上查看位图的png (32位图形)时,没有分带。

编辑:,我刚刚添加了一些测试代码,在屏幕上绘制一组细线条(canvas.drawLine(x,y,x2,y2,paint);),其中涂料分别有红色、绿色和蓝色扫描,从0到255。得到的图像就在这里

红色和蓝色有32条颜色,绿色有64条.这意味着屏幕格式为红色和蓝色各为5位,绿色为6位--在我看来就像是"RGB_565“。然后我尝试了getWindow().setFormat(PixelFormat.RGBA8888);在onCreate早期,它没有什么区别--仍然是32/64波段。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-12 13:06:16

我有电话

代码语言:javascript
复制
final SurfaceHolder holder = getHolder();

在我的密码里。然后我把这个换成

代码语言:javascript
复制
final SurfaceHolder holder = getHolder();
holder.setFormat(PixelFormat.RGBA_8888);

从那时起,一切都运行得很好(一点也不带)。

票数 2
EN

Stack Overflow用户

发布于 2015-02-10 11:24:38

尝试将其添加到您的AndroidManifest.xml中以避免默认的RGB_565:

代码语言:javascript
复制
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21052146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档