0

我正在构建一个具有一定透明度的 UI。我已经设法让不同的按钮和布局变得透明,所以当我想要有点透明的视图开始表现得很奇怪时,我有点惊讶。

在“设计器”中查看布局时,有问题的视图在 Eclipse 中显示为部分透明。但是当我将它部署到设备(三星 S2、Android 4)时,那个特定的视图会变成纯黑色。

解释它是如何构建的有点混乱,但我会尝试。

首先,我希望它看起来如何(透明度,它在 Eclipse 中的外观):

绿色圆圈周围的框是透明的

这是部署到设备时的样子(不透明):

在此处输入图像描述

第一个问题:

为什么 Eclipse/designer 与部署的版本不同?我已经清理了几次项目,我已经重新启动了 Eclipse 等。

下一步是看看结构如何。

简化版:

[activity_main] --> [LinearLayout] --> [包括“logobar”]

“logobar”看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:background="#80000000" >

    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <!-- Here is the box, and then the green circle inside the box -->
        <FrameLayout
            android:layout_width="50dp"
            android:layout_height="30dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/status_background"
            android:padding="0dp" >

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/bullet_ball_glass_green" />
        </FrameLayout>
        <!-- end of box -->

        <ImageView
            android:id="@+id/logo"
            android:layout_width="220dip"
            android:layout_height="55dip"
            android:background="@android:color/transparent"
            android:paddingLeft="10dp"
            android:src="@drawable/logo_demo" >
        </ImageView>
    </RadioGroup>

</RelativeLayout>

这是可绘制的“status_background”(分层以获得一些斜面效果):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <stroke
                android:width="1px"
                android:color="#77000000" />

            <corners android:radius="5dp" >
            </corners>
        </shape>
    </item>
    <item
        android:left="1dip"
        android:top="1dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1px"
                android:color="#77ffffff" />

            <corners android:radius="5dp" >
            </corners>
        </shape>
    </item>
    <item
        android:left="1dip"
        android:top="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="#11FFFFFF"/>
            <corners android:radius="5dp" >
            </corners>
        </shape>
    </item>
</layer-list>

那么第二个问题: 谁能告诉我我在这里做错了什么?=) 谢谢

4

1 回答 1

0

像往常一样,在尝试了几个小时之后,我去了心爱的 Stack Overflow,并且,和以前一样,我在发布后不久就设法解决了这个问题(好吧,它的一部分)。

所以,我无法解释为什么 Eclipse 显示透明度,但设备没有。奇怪的行为。

但是,如果我更改 status_background 如下,那么它适用于两者:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/transparent"/>
            <stroke android:width="1px" android:color="#77000000" />
            <corners android:radius="5dp"></corners>
        </shape>
    </item>
    <item android:left="1dip" android:top="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/transparent"/>
            <stroke android:width="1px" android:color="#77ffffff" />
            <corners android:radius="5dp" ></corners>
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#11FFFFFF"/>
            <corners android:radius="5dp" ></corners>
        </shape>
    </item>
</layer-list>
于 2013-01-10T21:55:54.833 回答