1. ホーム
  2. android

[解決済み] シェイプの不透明度を設定するには?

2023-03-07 03:45:33

質問

背景画像の不透明度を設定する方法は知っているのですが、シェイプオブジェクトの不透明度を設定する必要があります。

私のAndroidアプリでは、次のようにしています。

で、この黒い部分を少し透明にして、例えば、この "Welcome..." のように丸が見えるようにしたいのですが、どうでしょうか?

以下は私のシェイプのコードです。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/shape_my"">
    <stroke android:width="4dp" android:color="#636161" />
    <padding android:left="20dp"
        android:top="20dp"
        android:right="20dp"
        android:bottom="20dp" />
    <corners android:radius="24dp" />
</shape>

どうすればいいのでしょうか?

どのように解決するのですか?

一般的には、形状を作成する際に、少し透明な色を定義すればよいでしょう。

色のアルファチャンネルを設定することによって、それを達成することができます。

#FF000000 は黒一色となるのに対し #00000000 は 100 % 透明な が得られます (まあ、明らかにもう黒ではないのですが)。

配色は次のようなものです。 #AARRGGBB ここで、Aはアルファチャンネル、Rは赤、Gは緑、Bは青を表しています。

Javaで色を設定しても同じことです。そこでは次のようにしか見えません。 0xFF000000 .

アップデイト

この場合、"update "コマンドの前に solid ノードを追加する必要があります。以下のように。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/shape_my">
    <stroke android:width="4dp" android:color="#636161" />
    <padding android:left="20dp"
        android:top="20dp"
        android:right="20dp"
        android:bottom="20dp" />
    <corners android:radius="24dp" />
    <solid android:color="#88000000" />
</shape>

ここでの色は、半分透明の黒です。