0

ある程度の透明性を備えたUIを構築しています。さまざまなボタンやレイアウトを透明にすることができたので、ある程度透明にしたいビューが奇妙に動作し始めたときに少し驚きました。

「designer」でレイアウトを表示すると、問題のビューはEclipseで部分的に透明として表示されます。しかし、それをデバイス(Samsung S2、Android 4)にデプロイすると、その特定のビューは代わりに黒一色になります。

それがどのように構築されたかを説明するのは少し面倒ですが、私は試してみます。

まず、私がそれをどのように見せたいか(透明性、Eclipseでどのように見えるか):

緑の円の周りのボックスは透明です

これは、デバイスにデプロイされたときの外観です(透明度なし)。

ここに画像の説明を入力してください

最初の質問:

Eclipse / Designerがデプロイされたバージョンと異なるのはなぜですか?プロジェクトを数回クリーンアップし、Eclipseを再起動しました。

次のステップは、構造がどのようになっているのかを確認することです。

簡略化されたバージョン:

[activity_main]->[LinearLayout]->[「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>

次に2番目の質問: 私がここで間違っていることを誰かに教えてもらえますか?=)ありがとう

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 に答える