android 代码设置PNG图片失真问题
2013-07-03 14:46
295 查看
今天测试那边反馈一个问题,我们的游戏背景的渐变处有明显的光晕失真:先上图
![](http://img.blog.csdn.net/20130703143106156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVqaXhpYW42MjcyMDAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
用蓝线圈出来的地方渐变效果有明显的失真现象
我的代码是:
gameBg.setBackgroundDrawable(ImageUtil.getResDrawable(R.drawable.join_bj));
在网上找了一下都提到:在Activity的onCreate()方法中直接设置 getWindow().setFormat(PixelFormat.RGBA_8888);
资料链接:http://blog.sina.com.cn/s/blog_7f56ca7b0100uz4g.html
感觉说的挺在理的,但是尝试之后,还是没任何改变。
这是为什么呢,我在xml文件中直接设置和用gameBg.setBackgroundResource(R.drawable.join_bj);设置都不会失真
我再自己检查原来是应为之前的开发为了控制内存溢出,创建了一个工具类来进行缓存
ImageUtil.getResDrawable(R.drawable.join_bj)这个就是调用了缓存,而在我的工具方法里面有一段这样设置的
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
BitmapDrawable drawable = new BitmapDrawable(context.getResources(), BitmapFactory.decodeStream(
context.getResources().openRawResource(drawableId), null, opt));
WeakReference<Drawable> softDrawable = new WeakReference<Drawable>(drawable);
drawable = null;
imageWeakMap.put(String.valueOf(drawableId), softDrawable);
其中有这句话:opt.inPreferredConfig = Bitmap.Config.RGB_565;
这个是当初为了降低图片占用的内存,设的参数,也是应为这个参数降低了图片的质量,使得图片失真了。
我把它改成了opt.inPreferredConfig = Bitmap.Config.ARGB_8888;或者把它注销掉,就没失真了
最终效果:
用蓝线圈出来的地方渐变效果有明显的失真现象
我的代码是:
gameBg.setBackgroundDrawable(ImageUtil.getResDrawable(R.drawable.join_bj));
在网上找了一下都提到:在Activity的onCreate()方法中直接设置 getWindow().setFormat(PixelFormat.RGBA_8888);
资料链接:http://blog.sina.com.cn/s/blog_7f56ca7b0100uz4g.html
感觉说的挺在理的,但是尝试之后,还是没任何改变。
这是为什么呢,我在xml文件中直接设置和用gameBg.setBackgroundResource(R.drawable.join_bj);设置都不会失真
我再自己检查原来是应为之前的开发为了控制内存溢出,创建了一个工具类来进行缓存
ImageUtil.getResDrawable(R.drawable.join_bj)这个就是调用了缓存,而在我的工具方法里面有一段这样设置的
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
BitmapDrawable drawable = new BitmapDrawable(context.getResources(), BitmapFactory.decodeStream(
context.getResources().openRawResource(drawableId), null, opt));
WeakReference<Drawable> softDrawable = new WeakReference<Drawable>(drawable);
drawable = null;
imageWeakMap.put(String.valueOf(drawableId), softDrawable);
其中有这句话:opt.inPreferredConfig = Bitmap.Config.RGB_565;
这个是当初为了降低图片占用的内存,设的参数,也是应为这个参数降低了图片的质量,使得图片失真了。
我把它改成了opt.inPreferredConfig = Bitmap.Config.ARGB_8888;或者把它注销掉,就没失真了
最终效果:
相关文章推荐
- Android PNG渐变背景图片失真问题 getWindow().setFormat(PixelFormat.RGBA_8888);
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题 getWindow().setFormat(PixelFormat.RGBA_8888);
- Android PNG渐变背景图片失真问题 getWindow().setFormat(PixelFormat.RGBA_8888);
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题
- Android PNG渐变背景图片失真问题
- Android PNG透明渐变背景图片失真问题
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- 关于 android 设置背景图片时找不到指定文件的问题
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- Android笔记 四种方案解决ScrollView嵌套ListView问题之动态设置ListView高度代码整理
- 关于解决android图片设置时outofmemery的问题!!!!!!!!!!
- [Android_Develop]使用RGB值在代码中实时设置图片背景颜色
- Android TextView 代码中设置DrawableLeft 图片
- Android apk代码中动态设置背景图片