Viewの背景を透明/半透明にする方法 | Androidアプリ開発

この記事ではAndroidアプリ開発において、Viewの背景を(半)透明にする方法を紹介します。
※今後は呼び方を半透明で統一します。
スポンサーリンク

Viewの背景を半透明にする方法

Viewの背景を半透明にする方法としては以下の2種類の方法があります。
  • Alpha値を設定する
  • 8桁色指定を使用する
以下にはそれぞれの方法について、静的・動的に実装する方法を紹介します。

Alpha値を設定する

Alpha値を設定することでViewの透明度を操作することができます。 Alpha値は0.00(完全透明)~1.00(完全不透明)の範囲で相対的に設定できます。

静的に実装する場合

Viewのalpha属性に小数で設定します。
以下がサンプルコード・サンプル画像です。

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@mipmap/ic_launcher"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >

        <View
            android:id="@+id/v1"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#000000"
            android:alpha="0.25"
            />

        <View
            android:id="@+id/v2"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#000000"
            android:alpha="0.50"
            />

        <View
            android:id="@+id/v3"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#000000"
            android:alpha="0.75"
            />

        <View
            android:id="@+id/v4"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#000000"
            android:alpha="1.00"
            />

    </LinearLayout>

</FrameLayout>
実装時のサンプル画像
不透明度を設定したときのサンプル画像

動的に実装する場合

動的に実装する場合はViewオブジェクトのsetAlphaメソッドを使用します。
以下がサンプルコードです。

MainActivity.java
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.v1).setAlpha(0.25f);
        findViewById(R.id.v2).setAlpha(0.50f);
        findViewById(R.id.v3).setAlpha(0.75f);
        findViewById(R.id.v4).setAlpha(1.00f);
    }
}

8桁色指定を使用する

通常、色を指定する場合は黒色であれば#000000のように6桁の16進数で指定します。

実は色指定は8桁まで使用することができ、上位2桁は透明度を表します。
上位2桁の不透明度は00(完全透明)~FF(完全不透明)の相対値で指定します。
(※増減がAlpha値と逆なので注意!!)

例えば、Alpha値=0.25, 0.50, 0.75, 1.00相当の8桁色指定は
#3F000000, #7F000000, #BF000000, #FF000000となります。

静的に実装する場合

静的に実装する場合はViewのbackground属性にさきほどの8桁色指定をします。
以下がサンプルコード・サンプル画像です。

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@mipmap/ic_launcher"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >

        <View
            android:id="@+id/v1"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#3F000000"
            />

        <View
            android:id="@+id/v2"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#7F000000"
            />

        <View
            android:id="@+id/v3"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#BF000000"
            />

        <View
            android:id="@+id/v4"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#FF000000"
            />

    </LinearLayout>

</FrameLayout>
実装時のサンプル画像
不透明度を設定したときのサンプル画像

動的に実装する場合

動的に実装する場合はさきほどの8桁色指定を
ViewオブジェクトのsetBackgourndColorメソッドの引数に渡します。

以下がサンプルコードです。 MainActivity.java
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.v1).setBackgroundColor(0x3f000000);
        findViewById(R.id.v2).setBackgroundColor(0x7f000000);
        findViewById(R.id.v3).setBackgroundColor(0xbf000000);
        findViewById(R.id.v4).setBackgroundColor(0xff000000);
    }
}
スポンサーリンク

まとめ

この記事では、Viewの背景を(半)透明にする方法として、
①Alpha値の設定 ②8桁色指定の2種類で静的・動的それぞれの実装方法を紹介しました。
Androidアプリ開発
スポンサーリンク
Androidアプリ開発 記事一覧
Androidアプリ開発 記事一覧
Androidアプリ開発の記事一覧を以下にまとめています。
良かったらご覧ください。

Androidアプリ開発 記事一覧
カテゴリ広告: Androidアプリ開発
スポンサーリンク: Androidアプリ開発を個人レッスンで学ぶなら...?
Androidアプリ開発は一人で学んでいても限界があります。
そこでオススメなのがオンラインでAndroidアプリ開発を学べる「コードキャンプ」。
個人レッスンで丁寧に教えてくれます。

無料レッスン体験も可能なので、まずは無料体験から試してみてはいかがでしょうか?

Androidアプリ開発個人レッスン
一般広告: モバイルバッテリー
スポンサーリンク
Aresei-note
タイトルとURLをコピーしました