我有问题让透明的PNG在android / eclipse中显得透明。
我有这个:
<ImageView
android:id="@+id/someid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/theimage" />
在imageview中使用此图像时,XML图形布局将图像透明度显示为BLACK:
http://s7.directupload.net/file/d/3140/ehqd3yhm_png.htm
如果我使用下面的图像,透明度显示正常:
http://s7.directupload.net/file/d/3140/dc5aco6n_png.htm
您将看到图像图标在Windows桌面壁纸的透明面前。您也可以手动验证图像,看它们实际上都是透明的。
这是一个错误还是发生了什么?我无法创建一个将在eclipse / android中显示的透明PNG。所以我从网上拍下第二张图片给你看......
编辑:我需要让很多图片透明,当前我正在使用irfanview。还有什么其他计划适合?EDIT2:
另外需要注意的是我把
android:theme="@android:style/Theme.Light"
进入我的清单因为我想要白色主题而不是黑色。不知道这是否有任何影响。
整个XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/beleg_imagegesperrt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:src="@drawable/ic_schloss_zu"/>
<!-- this is the imageview I test with, i added android:background="#FF0000" but does not help -->
<ImageView
android:id="@+id/beleg_imageabgeschlossen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickBarauslagen"
android:src="@drawable/dddd"
/>
<ImageView
android:id="@+id/beleg_imageeinsatzberichtvorhanden"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:src="@drawable/ic_notizbuch_unselected" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/beleg_textbelegid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textbelegid" />
<TextView
android:id="@+id/beleg_belegid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/belegid" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/beleg_textbelegvonbis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textbelegvonbis" />
<TextView
android:id="@+id/beleg_belegvon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/belegvon" />
<TextView
android:id="@+id/beleg_belegbis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/belegbis" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/beleg_textbelegabgeschlossen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textbelegabgeschlossen" />
<TextView
android:id="@+id/beleg_belegabgeschlossen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/belegabgeschlossen" />
<TextView
android:id="@+id/beleg_textbeleggesperrt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textbeleggesperrt" />
<TextView
android:id="@+id/beleg_beleggesperrt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/beleggesperrt" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/beleg_textbelegsummestunden"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textbelegsummestunden" />
<TextView
android:id="@+id/beleg_belegsummestunden"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abstand_liste"
android:text="@string/belegsummestunden" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
您的图片可能显示为透明,但布局的某些部分实际上是黑色背景,并且由于图像的某些部分是透明的,因此背景会显示出来。
尝试将ImageView
的背景设置为某种颜色并查看其是否发生变化。
您只需将此行添加到ImageView
部分的xml中:
android:background="#FF0000"
(红色)或其他一些十六进制值,以查看是否显示。
你可以发布整个xml文件吗?
编辑:我使用Paint.net处理图像,它是免费的,适用于创建透明背景。
答案 1 :(得分:0)
确定 Cofirmed这是一个IrfanView错误。
如果我使用IrfanView插件pngout.dll(感谢上帝存在)来保存png(你可以在保存对话框中选择是否使用插件),pngs不会“损坏”。
谁会想到?
编辑:在这里下载插件http://www.irfanview.com/plugins.htm(在其中一个zip文件中)
edit2:ok也可能是eclipse的错误。无论程序写入或读取PNG非标准符号,即
答案 2 :(得分:0)
尝试在xml布局中使用null作为图像视图的背景。
android:background="@null"