Android 開発メモ

こまものを備忘録として記録します。

Ripple Effect (波紋)

デフォルトではエフェクトが付いていないオブジェクトには、OSで用意されているリソースを設定します。 例えば、RecyclerView のカスタム行を定義した時に、タップのエフェクトをつけたい時とかです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:background="?attr/selectableItemBackground"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="16dp">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_margin="4dp"
        android:contentDescription="@string/icon_desc"
        tools:srcCompat="@drawable/ic_dialpad_24dp"
        app:tint="@color/colorSecondary" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="@style/TextAppearance.AppCompat.Large"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
情報源はこちら

Material Design で利用できるカラー属性値

ライブラリ部品の色やテーマに合わせて変更したい色は直接指定するといつも同じ色になってしまうので、カラー属性を使いたいのですが、テーマに従いたい時はテーマで定義された属性値を使うことになります。この値をいつも忘れてしまうので、そのリンクです。
カラー属性意味
colorPrimaryプライマリカラー(アプリのブランドカラー)
colorPrimaryVariantプライマリカラーから生成される明るいまたは暗い色
colorOnPrimaryプライマリカラーの上にのるテキストの色
colorSurface表面の色
colorOnSurface表面の上にのるテキストの色
ダークテーマで文字の色が反転するように colorOnSurface とか使うと有効だと思います。 詳しくはリンク先をどうぞ。 https://material.io/blog/android-material-theme-color

コメントを残す

メールアドレスが公開されることはありません。