2

我在使透明 PNG 在 android/eclipse 中看起来透明时遇到问题。

我有这个:

<ImageView
        android:id="@+id/someid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/theimage" />

在 imageview 中使用此图像时,XML 图形布局将图像透明度显示为黑色:

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。还有什么程序适合?

编辑2:

另外要注意的一件事是我把

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>
4

3 回答 3

1

很可能您的图像显示为透明,但您的布局的某些部分实际上是黑色背景,并且由于图像的部分是透明的,因此背景是透明的。

尝试将背景设置为ImageView某种颜色,看看它是否会改变。

您可以将此行添加到ImageView部分中的 xml 中:

android:background="#FF0000"(红色)或其他一些十六进制值,看看是否显示出来。

你能发布整个xml文件吗?

编辑:我使用 Paint.net 处理图像,它是免费的,并且非常适合创建透明背景。

于 2013-01-19T19:04:09.027 回答
0

OK 确认这是一个 IrfanView 错误。

但是,如果我使用 IrfanView 插件 pngout.dll(感谢上帝存在)来保存 png(您可以在保存对话框中选择是否使用该插件),则 png 不会“损坏”。

谁曾想到?

编辑:在此处下载插件http://www.irfanview.com/plugins.htm(在其中一个 zip 文件中)

编辑2:好的也可能是日食的错误。任何程序写入或读取 PNG non-standardconform,即

于 2013-01-19T20:02:29.210 回答
0

尝试使用 null 作为 xml 布局中图像视图的背景。

android:background="@null"
于 2014-08-08T10:11:09.587 回答