【问题标题】:Why is my imported PNG such low quality为什么我导入的PNG质量这么差
【发布时间】:2011-08-18 20:54:54
【问题描述】:

我在做:

android:background="@drawable/mobile_vforum_bg"

在main.xml文件中设置BG。

它可以工作,只是在模拟器上查看时图像质量很差。它是 320x480 的 PNG(96dpi,在低、中和高文件夹中相同)。当我使用 Titanium 构建我的 android 应用程序时,它看起来不错。我现在正在使用 eclipse 和 java,它看起来很糟糕。

【问题讨论】:

    标签: android background


    【解决方案1】:

    我在将高分辨率图像设置为 Activity 的背景时遇到了这个问题,我能够通过使用 Activity 的 onCreate() 方法中的以下 java 代码来解决它。

            BitmapFactory.Options myOptions = new BitmapFactory.Options();
            myOptions.inDither = true;
            myOptions.inScaled = false;
            myOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
            myOptions.inDither = false;
            myOptions.inPurgeable = true;
            Bitmap preparedBitmap = BitmapFactory.decodeResource(yourAppName.getSharedApplication().getResources(),
                    R.drawable.yourImage, myOptions);
            Drawable background = new BitmapDrawable(preparedBitmap);
            ((LinearLayout) findViewById(R.id.yourLayoutId))
                .setBackgroundDrawable(background);
    

    如果您使用此代码,也不要从布局 xml 设置背景。如果这不起作用,请尝试在 AndroidManifest.xml 中的应用程序标记之外设置以下行

    <supports-screens android:largeScreens="true"
        android:normalScreens="true" android:smallScreens="true"
        android:anyDensity="true" />
    

    希望对你有帮助!!!

    【讨论】:

      【解决方案2】:

      尝试将它移动到“res/drawable_hdpi”文件夹,这对我有用。

      【讨论】:

      • 我在所有三个文件夹中都有相同的图像。也许我正在测试的模拟器设置为低 dpi 或其他东西
      • SDK 会优化所有图像,所以我认为还有另一个选择 - 将其放入 /res/raw 文件夹(在构建过程中放置​​的文件保持不变)并使用 Resources.openRawResource() 手动加载。
      • 我无法在 XML 中进行该调用,尽管就像我在上面所做的那样。那么如何使用 java 设置应用程序的背景呢?
      • yourview.setBackgroundDrawable(img);
      • 我最终制作了一个新的虚拟设备,设置略有不同,现在背景看起来很好。我仍在使用 XML 方法。
      猜你喜欢
      • 2020-12-20
      • 2013-07-09
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2016-04-22
      • 2017-02-20
      • 2012-04-30
      相关资源
      最近更新 更多