Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android】ボタンに影(シャドウ)を付ける方法|layer-listで立体感のあるボタンを作る

このチュートリアルでは、Androidのボタンに影(シャドウ)効果を追加する方法を、サンプルコードとともに段階的に解説します。layer-listドローアブルを活用すれば、Material Designのような立体感のあるボタンを、追加ライブラリなしで簡単に実装できます。

手順1:Android Studioで新規プロジェクトを作成

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。

手順2:activity_main.xmlにレイアウトを記述

res/layout/activity_main.xml を開き、以下のコードを追加します。ポイントは、<Button>android:background 属性に、後ほど作成するカスタムドローアブル「shadow_button_layer_list」を指定している点です。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:width="200dp"
        android:layout_gravity="center"
        android:text="Shadow Button"
        android:background="@drawable/shadow_button_layer_list"/>
</androidx.constraintlayout.widget.ConstraintLayout>

手順3:MainActivity.java を記述

src/MainActivity.java には以下のコードを記述します。今回は影をレイアウト側(XML)で実現するため、Activityのコードはごくシンプルな構成になっています。

package com.medkart.sample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

手順4:shadow_button_layer_list.xml で影を定義

ここが影の実装における核心部分です。res/drawable/ フォルダに shadow_button_layer_list.xml を新規作成し、以下のコードを記述します。

layer-list では、下層にグレーの図形(影の役割)、上層に白い図形(ボタン本体)を重ねて描画します。下層の図形を左方向に3dp・上方向に5dpオフセットさせることで、ボタンの右下に影が見える仕組みです。角丸の半径(15dp)を両レイヤーで揃えておくことで、自然な見た目になります。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="https://schemas.android.com/apk/res/android">
    <!-- グレーの影 -->
    <item android:left="3dp" android:top="5dp">
        <shape>
            <solid android:color="@android:color/darker_gray" />
            <corners android:radius="15dp" />
        </shape>
    </item>
    <!-- 白い前景(ボタン本体) -->
    <item android:bottom="5dp" android:right="3dp">
        <shape>
            <solid android:color="@android:color/white" />
            <corners android:radius="15dp" />
        </shape>
    </item>
</layer-list>

手順5:AndroidManifest.xml を確認

Manifests/AndroidManifest.xml は以下の内容になっています。今回の実装に特別な権限や設定は不要です。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.medkart.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリを実行して結果を確認

それではアプリを実際に動かしてみましょう。実機のAndroid端末をパソコンに接続し、プロジェクト内のアクティビティファイルを開いた状態で、ツールバーの「Run」【Android】ボタンに影(シャドウ)を付ける方法|layer-listで立体感のあるボタンを作る アイコンをクリックします。接続したデバイスを選択してアプリを起動すると、次のようにボタンに影が付いた画面が表示されます。

【Android】ボタンに影(シャドウ)を付ける方法|layer-listで立体感のあるボタンを作る

  1. AndroidアプリでTextToSpeech(音声読み上げ)機能を実装する方法をわかりやすく解説

    このチュートリアルでは、AndroidアプリにTextToSpeech(音声合成・TTS)機能を実装し、入力したテキストを音声で読み上げる方法を解説します。サンプルでは、シークバーを使って音声のピッチ(声の高さ)とスピード(話す速さ)を調整できる、実用的な構成になっています。 手順1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから File ⇒ New Project を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 手順2:レイアウトファイル(activity_main.xml)を編集 res/layou

  2. FacebookでAndroidアプリを作成する方法|開発者サイトでの設定手順を徹底解説

    この記事では、FacebookでAndroidアプリを作成する方法について詳しく解説します。AndroidアプリとFacebookを連携させるには、Facebook開発者サイトでFacebookアプリを作成し、Facebook App IDを取得する必要があります。以下の手順に従って、順番に進めていきましょう。 準備:Facebook開発者サイトで新しいアプリを追加する まず、https://developers.facebook.com/ にアクセスし、「新しいアプリを追加」をクリックしてアプリの作成を開始します。 ステップ1:アプリ名とメールアドレスを入力する 指定されたフィールドに、作