我有一个闪屏,ImageView
扮演背景的一部分。无论我是否允许我的位图缩放(我这样做),图像质量都很糟糕。我认为这会减少颜色深度。我已经环顾四周了,一个建议是将我的图片放在raw
而不是drawable
,但这也没有帮助。这是一个截图:
这里到底发生了什么,我该如何解决?
编辑:我没有以编程方式应用此位图,因此没有相关的Java代码。以下是此活动的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayoutSplash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawingCacheQuality="high"
android:orientation="vertical"
android:padding="@dimen/splash_padding"
android:scrollbarAlwaysDrawVerticalTrack="true"
tools:context=".SplashActivity" >
<ImageView
android:id="@+id/ImageViewBg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/logo_description"
android:scaleType="centerCrop"
android:src="@drawable/splash_bg_register" />
<ImageView
android:id="@+id/ImageViewLogo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/logo_description"
android:maxHeight="@dimen/logo_maxheight"
android:maxWidth="@dimen/logo_maxwidth"
android:layout_centerVertical="true"
android:src="@drawable/logo" />
<TextView
android:id="@+id/TextViewCopyright"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/copyright"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/white_50"
android:textSize="@dimen/copyright_size" />
</RelativeLayout>
编辑:我按照建议尝试了getWindow().setFormat(PixelFormat.RGBA_8888);
,这显示了明显的区别,但条带仍然存在。 This是我用作背景的图片。
答案 0 :(得分:8)
当图像的纵横比受到干扰时,会出现条带。
您可以尝试以下任何一项:
制作图片.9.png
。在这种情况下,它会自动修复任何延伸并照顾条带。
对图像应用表面抖动,这可能会阻止任何异常的条纹。
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/b1"
android:tileMode="repeat"
android:dither="true" />
答案 1 :(得分:2)
你的形象的尺寸是多少?什么是设备? 我怀疑的是图像大小与显示器的大小不匹配,并且它位于错误的资源可绘制文件夹中。图像看起来相当规模。这些文章可以帮助您挑选不同屏幕的图像分辨率和资源文件夹。
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/index.html
答案 2 :(得分:2)
您必须设置窗口颜色格式。在你的活动中放了这样的东西:
getWindow().setFormat(PixelFormat.RGBA_8888);
答案 3 :(得分:1)
我猜图像的尺寸小于图像显示的区域。因此,可能是图像正在扩大和失去质量。
What you can try is:
1. Either put the image of similar dimension
2. use 9 patch image ( good idea )
答案 4 :(得分:1)
您需要将图片调整为不同尺寸,并将其放入res/
答案 5 :(得分:0)
尝试抗锯齿,这可能会解决您的问题。
使用以下xml创建一个可绘制的位图。
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background"
android:antialias="true"
android:dither="true" />
答案 6 :(得分:0)
你正在做的是在xml中设置更多依赖的图像 关于图像分辨率支持的内容。
每个支持的多个设备密度都有多个文件夹,将您的图像放在一些合适的dpi文件夹中。
请参阅此链接http://developer.android.com/guide/practices/screens_support.html
查看相同的应用图标,如何在不同的文件夹中表现得很明显
不支持不同密度的示例应用,如低,中,高密度屏幕所示
示例应用,具有对不同密度的良好支持(与密度无关),如低,中,高密度屏幕所示。
答案 7 :(得分:0)
通过将图像设为背景图像来调整它。这是一个示例代码
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/your_image"
/>