この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Androidのアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
(これからAndroidのアプリ開発やJavaの開発を始めたい方への案内は、記事の最後で紹介します)
ViewGroup(レイアウト)を立体に見せる影をつける
何だかんだいっても、アプリ開発で使うならPixelシリーズがベストと思います。
ポイント
Viewコンポーネントを立体的に見せる方法として、elevationに値を設定して影をつける方法が有効です。
しかし、ViewGroup(レイアウト)のelevationに値を設定しても影がつきません。
今回は、ViewGroupに影をつける方法を紹介します。

レイアウト定義
ViewGroup(LinearLayout)につける影の高さをelevationに設定します。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_grad_grey3">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="UselessParent">
<LinearLayout
android:id="@+id/panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:elevation="4dp"
android:orientation="vertical"
tools:ignore="UselessParent">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:background="@drawable/bg_grad_grey1"
tools:ignore="UselessParent">
:
bg_grad_grey1やbg_grad_grey3はレイアウトに設定する背景です。
bg_grad_grey3はグラデーション背景、bg_grad_grey1は角丸の枠線を定義した背景です。
ViewGroupに影をつける
ViewOutlineProviderのgetOutlineをオーバライドして影を描写します。
影の描写にはPathで影を設定する枠(範囲)を指定します。
:
ViewOutlineProvider provider = new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
float width = view.getWidth();
float height = view.getHeight();
android.graphics.Path path = new android.graphics.Path();
path.lineTo(0, height);
path.lineTo(width, height);
path.lineTo(width, 0);
path.lineTo(0, 0);
path.close();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
outline.setPath(path);
} else {
outline.setConvexPath(path);
}
}
};
LinearLayout panel = findViewById(R.id.panel);
panel.setOutlineProvider(isEdit ? provider : null);
:
LinearLayoutの影を設定する枠をlineToで4つの辺を線で描きます。
setOutlineProviderでLinearLayoutに影を設定します。
影を外す場合はnullを設定します。
今回は、ここまでです。
ViewGroup(LinearLayout)に影をつけているAndroidアプリです。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、JavaやC#などのオブジェクト指向言語が初めての方は、Androidのアプリ開発ができるようになるには、かなりの時間がかかります。
オンラインスクールでの習得を、強くおススメします。
未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪
コメント欄