【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アプリでTextToSpeech(音声読み上げ)機能を実装する方法をわかりやすく解説
このチュートリアルでは、AndroidアプリにTextToSpeech(音声合成・TTS)機能を実装し、入力したテキストを音声で読み上げる方法を解説します。サンプルでは、シークバーを使って音声のピッチ(声の高さ)とスピード(話す速さ)を調整できる、実用的な構成になっています。 手順1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから File ⇒ New Project を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 手順2:レイアウトファイル(activity_main.xml)を編集 res/layou
-
FacebookでAndroidアプリを作成する方法|開発者サイトでの設定手順を徹底解説
この記事では、FacebookでAndroidアプリを作成する方法について詳しく解説します。AndroidアプリとFacebookを連携させるには、Facebook開発者サイトでFacebookアプリを作成し、Facebook App IDを取得する必要があります。以下の手順に従って、順番に進めていきましょう。 準備:Facebook開発者サイトで新しいアプリを追加する まず、https://developers.facebook.com/ にアクセスし、「新しいアプリを追加」をクリックしてアプリの作成を開始します。 ステップ1:アプリ名とメールアドレスを入力する 指定されたフィールドに、作