ある程度の透明性を備えた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番目の質問: 私がここで間違っていることを誰かに教えてもらえますか?=)ありがとう