web-dev-qa-db-ja.com

形状の不透明度を設定する方法は?

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

Androidアプリでは、このようになっています: enter image description here

そして、この黒い領域を少し透明にしたいと思います。たとえば、この「Welcome ...」で円を見ることができます。

enter image description here

これが私の形状コードです。

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

どうやってやるの?

75
lomza

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

カラーアルファチャネルを設定することで、これを実現できます。

#FF000000は黒一色になりますが、#00000000は、100%透明blackになります(これは明らかに黒ではありません)。

カラースキームはこのような#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>

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

181

以下のコードを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>

どこ:

  • 「進行状況」は親指の前の現在の進行状況であり、「secondaryProgress」は親指の経過後の進行状況です。
  • color = "#00000000"は完璧な透明度です
  • 注:上記のファイルはデフォルトのAndroid resおよび2.3.7用です。Android sources at: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"
4
ungalcrys

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

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