【发布时间】:2014-04-17 00:25:59
【问题描述】:
首先我应该说我对android完全陌生,所以也许我的问题对你来说很普通。
问题:我在Photoshop中设计了以下图片(透明背景的png-24)
并将其添加到我的项目中的res/drawable 中,以将其用作ImageButton 的来源,但它看起来像这样:
如您所见,圆形已经完全改变并且灰色背景被添加到图像中。
请告诉我如何解决这个问题?是我使用这张图片的方式不对还是图片格式不对?
编辑:我刚刚在添加到我的帖子时调整了图像的大小(简单的png),突然出现了图像的一个角落,是不是因为大小或类似的原因?
这是包含活动的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageButton
android:id="@+id/showHistBtn"
android:src="@drawable/showhistory" />
<ImageButton
android:id="@+id/findWordBtn"
android:src="@drawable/find_aword" />
<ImageButton
android:id="@+id/insertNewWordBtn"
android:layout_width="315dp"
android:layout_height="200dp"
android:src="@drawable/insertnewword" />
</LinearLayout>
【问题讨论】:
-
png-24 with transparent background在自然界中并不存在。如果您有透明度,那么它是 32 位 PNG(每个 Alpha 通道 8 位,每个 R 通道 8 个,每个 G 通道 8 个,每个 B 通道 8 个)。所以,问题就在这里。 -
你的意思是如果我将输出保存为 png-8 或 jpg 它会得到修复?
-
JPG 不支持任何透明度。 png-32(每通道 8 位)可以解决问题。
-
@Vyger:谢谢,我现在就试试。
-
好的,我的建议:平滑角落(使用抗锯齿)。更高的分辨率也可能有所帮助(72 dpi 真的很差)。考虑到 Android 中分辨率最低的设备有 120 dpi...而正常是 160 dpi...
标签: java android eclipse image png