- XMLでRipple効果を設定する方法: まず、res/drawableディレクトリにripple_effect.xmlという名前の新しいXMLファイルを作成します。以下のコードを追加します。
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
</ripple>
次に、対象のTextView要素でbackground属性を設定し、上記のXMLファイルを参照します。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ripple_effect"
android:text="Hello Ripple!" />
- プログラムでRipple効果を設定する方法: JavaまたはKotlinのコードでRippleDrawableオブジェクトを作成して、TextViewの背景として設定することもできます。以下のコードはJavaでの例です。
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.RippleDrawable;
import android.os.Build;
import android.widget.TextView;
// ...
TextView textView = findViewById(R.id.textView);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int[][] states = new int[][]{
new int[]{android.R.attr.state_pressed},
new int[]{}
};
int[] colors = new int[]{
Color.parseColor("#FF0000"), // Ripple color when pressed
Color.parseColor("#0000FF") // Default ripple color
};
ColorStateList colorStateList = new ColorStateList(states, colors);
RippleDrawable rippleDrawable = new RippleDrawable(colorStateList, new ColorDrawable(Color.WHITE), null);
textView.setBackground(rippleDrawable);
}
上記のコードでは、RippleDrawableを作成し、押された状態と通常の状態のために異なる色を設定しています。
これらの方法を使用することで、AndroidアプリケーションでTextViewにRipple効果を追加することができます。