gpt4 book ai didi

android - Gingerbread 上的渐变

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:00 25 4
gpt4 key购买 nike

已更新
我在 android 2.3 上遇到渐变位图问题。我读了这个great article并使用下一个选项解码我的位图:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = true;
在 android 2.2 上,一切都很好,但在 android 2.3 上,即使在解码之后,梯度伪像仍然存在。

我运行 application from article在 2.3 上,我的位图和所有变体都不好:16/32 位、(不是)抖动和 RBG_565、ARGB_8888 和 ARGB_4444 - 渐变有伪影。我也尝试在没有选项的情况下解码。 一切正常。抱歉,问题出在

opts.inScaled=true;
opts.inDensity=100;
opts.inTargetDensity=800;


但是现在我需要在 android 2.3 上运行这段代码,它仍然会产生错误的渐变(在 android 2.2 上一切正常):

    ImageView imageView = (ImageView) tabView.findViewById(R.id.tabsImage);
// decode bitmaps
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = true;
Bitmap tabImageOn = BitmapFactory.decodeResource(mainActivity.getResources(), tabImageResourceOnId, options);
Bitmap tabImageOff = BitmapFactory.decodeResource(mainActivity.getResources(), tabImageResourceOffId, options);
// create new selector
StateListDrawable tabImage = new StateListDrawable();
tabImage.addState(new int[] { android.R.attr.state_selected }, new BitmapDrawable(mainActivity.getResources(), tabImageOn));
tabImage.addState(new int[] {}, new BitmapDrawable(mainActivity.getResources(), tabImageOff));
tabImage.setDither(true);
// set selector to tab
imageView.setImageDrawable(tabImage);
我尝试在 onCreate/before/after 该方法中设置窗口像素格式:

    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(getWindow().getAttributes());
lp.format = PixelFormat.RGBA_8888;
getWindow().setAttributes(lp);

但是什么都没有改变(它是 Gingerbread ,它使用的是 32 位窗口格式)。

为什么会出现这样的行为,我该如何解决我的问题?

谢谢。美好的一天!

最佳答案

通过将可绘制对象移动到 hdpi 文件夹来解决。

关于android - Gingerbread 上的渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6746166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com