シェイプの不透明度を設定するにはどうすればよいですか?


89

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

私のAndroidアプリでは、次のようになっています。 ここに画像の説明を入力してください

この黒い領域を少し透明にしたいのですが、たとえば、この「ようこそ...」では円が表示されます。

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

これが私のシェイプコードです:

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

どうやってやるの?


2
ここでは、シェイプオブジェクトのコードが役立ちます。
Octavian A. Damiean 2011

回答:


203

一般に、シェイプを作成するときに、わずかに透明な色を定義する必要があります。

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

#FF000000黒一色#00000000になりますが、100%透明な黒になります(明らかに黒ではなくなります)。

配色は次のよう#AARRGGBBになります。Aはアルファチャネル、Rは赤、Gは緑、Bは青を表します。

Javaで色を設定する場合も同じことが言えます。そこにはのように見えるだけです0xFF000000

更新

あなたの場合、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>

こちらの色は半透明の黒です。


codeviewer.org/view/code:1974-shape.xmlcodeviewer.org/view/code:1975-layout.xmlcodeviewer.org/view/code:1976-.javasetOpacityはshapeでは機能しません。そして、android:background = "#00000000"をshape.xmlに追加しようとしましたが、何も起こりません。
lomza 2011

これは奇妙です...色に設定した値は関係ありません。形状は完全に透明です=(
lomza 2011

3
不透明度はビューまたは画像にのみ設定できるようです... LinearLayoutでandroid:background = "@ drawable / shape"ではなくandroid:background = "#88000000"と書くと、機能するためです。 。
lomza 2011

2
シェイプにも機能します。私が上に投稿したものを試しましたか?
Octavian A. Damiean 2011

1
はい、しかしそれは機能しません。このコードをすべて自分のマシンで試しましたか?
lomza 2011

4

以下のコードをprogress.xmlとして使用します。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

</layer-list>

どこ:

  • 「progress」は親指の前の現在の進行状況であり、「secondaryProgress」は親指の後の進行状況です。
  • color = "#00000000"は完全な透明度です
  • 注:上記のファイルはデフォルトのandroid resのものであり、2.3.7用であり、Androidソースのframeworks / base / core / res / res / drawable /progress_horizo​​ntal.xmlで入手できます。新しいバージョンの場合、Androidバージョンに対応するシークバーのデフォルトのドローアブルファイルを見つける必要があります。

その後、xmlを含むレイアウトで使用します。

<SeekBar
    android:id="@+id/myseekbar"
    ...
    android:progressDrawable="@drawable/progress"
    />

カスタムアイコンseek_thumb.pngを使用して親指をカスタマイズすることもできます。

android:thumb="@drawable/seek_thumb"

1

これを使って、私はこれを私のアプリに書きました、

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#882C383E"/>
    <corners
        android:bottomRightRadius="5dp"
        android:bottomLeftRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp"/>
</shape>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.