我为GIMP中的应用程序创建了一个背景.png。它的分辨率是640x480,来自谷歌搜索,似乎是默认模拟器的分辨率。我的问题是当我将背景应用于RelativeLayout
android:background=@drawable/bg
并运行它时,图像中有很多工件。好像模拟器无法提供足够的颜色来正确显示.png。这是怎么回事?
P.S。这个图像没什么好看的,只是简单的线条和径向渐变。
答案 0 :(得分:0)
它的分辨率是640x480,来自 谷歌搜索,似乎是决议 对于默认模拟器
640x480甚至不是Android中官方支持的分辨率,更不用说是“默认”分辨率了。以下是supported resolutions。
的列表另外,您想要观察颜色深度。我忘记了细节,但由于LCD的限制,并非一切都必须处理24位色。
答案 1 :(得分:0)
我收集了3个可能的解决方案:
对于您拥有的每个有问题的图像,在xml中创建并使用可绘制的位图。
缺点是您创建了多个文件。我已经测试了其他特殊标志(包括代码更改),并没有发现任何差异。
res / drawable / image_file.xml
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/problematic_image" />
将有问题的图像放在drawable-nodpi文件夹中。缺点是它会以这种方式使用更多RAM,因为它不会根据密度缩小。类似的方法可以在代码中完成:
final BitmapFactory.Options options = new BitmapFactory.Options(); options.inDensity = 1; options.inSampleSize = 1; options.inTargetDensity = 1; options.inJustDecodeBounds = false; final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.problematic_image, options); imageView.setImageBitmap(bitmap);
如果文件是png文件,请取一个最不显眼的像素(例如左下角),并将其不透明度更改为254而不是255.
这种方法的缺点是它使图像占用更多空间,并改变图像本身。
所有方法都适用于galaxy s和galaxy s2,使用android 2.3.x。