Junaid Pathan
Junaid Pathan

Reputation: 4336

Add click effect Ripple effect on Card View in Android Studio

I have programmatically added Card View. I just want to make it clickable and show animation while it is clicked. Here is my Code

CardView cardView = new CardView(this);
LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
cardView.setLayoutParams(layoutParams);
cardView.setRadius(15);
cardView.setPadding(25, 25, 25, 25);
cardView.setCardBackgroundColor(Color.MAGENTA);

TextView textView = new TextView(this);
textView.setLayoutParams(layoutParams);
textView.setText("Programmatically set");
textView.setGravity(Gravity.CENTER);
textView.setTextColor(Color.WHITE);
cardView.addView(textView);
LinearLayout linearLayout = findViewById(R.id.linearLayout1);
linearLayout.addView(cardView);

Upvotes: 1

Views: 571

Answers (3)

РСИТ _
РСИТ _

Reputation: 325

int[] attrs = new int[]{R.attr.selectableItemBackground};
TypedArray typedArray = this.obtainStyledAttributes(attrs);
int selectableItemBackground = typedArray.getResourceId(0, 0);
typedArray.recycle();

cardView.setForeground(this.getDrawable(selectableItemBackground));
cardView.setClickable(true);

Upvotes: 1

Gabriele Mariotti
Gabriele Mariotti

Reputation: 364451

With the Material Components Library just use:

cardView.setRippleColor(ContextCompat.getColorStateList(this,R.color.selector_card));

Upvotes: 1

Mohammad Sianaki
Mohammad Sianaki

Reputation: 1751

You can use this:

cardView.setClickable(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    TypedValue typedValue = new TypedValue();
    getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, typedValue, true);
    cardView.setBackgroundResource(typedValue.resourceId);
}

Upvotes: 0

Related Questions