Android(eclipse)PNG透明度显示为黑色(带pic示例)

时间:2013-01-19 18:45:57

标签: android eclipse image png transparency

我有问题让透明的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>

3 个答案:

答案 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"