我想通过按下按钮在Textview上制作Ripple效果。可能吗?我该怎么办?

时间:2018-01-31 13:11:14

标签: java android xml material-design

这是我的涟漪效应代码:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
android:color="@color/button_layout_ropple"
tools:targetApi="lollipop">
<item android:id="@android:id/mask">
    <shape android:shape="rectangle">
        <solid android:color="@color/button_layout_ropple" />
    </shape>
 </item>
</ripple>

和Textview xml代码是:

<TextView
        android:layout_width="match_parent"
        android:id="@+id/output"
        android:textSize="20sp"
        android:foreground="@drawable/ripple_effect"
        android:background="#f4de97"
        android:text="Result"
        android:layout_height="65dp"
        android:clickable="true" />

触摸Textview时创建的涟漪效果,但我想通过按下按钮创建此效果。可能吗?如果可能,我该怎么办?

以下是该按钮的代码:

         <Button
                android:id="@+id/buttonClear"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:text="clear"
                android:background="#ECEFF1"
                android:textColor="#000000"
                android:textSize="20dp" />

按钮处理程序代码是:

 buttonClear.setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) {


                    input.setText(null);
                    output.setText("output");

                }
            }
    );

我希望通过按此按钮在Textview上显示涟漪效果。

1 个答案:

答案 0 :(得分:0)

这可以通过将performClick()方法调用放在按钮的onClick上来完成。不确定这是不是你想要的。

这是一种程序化地调用该textView上的单击的方法。代码快照类似于:

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){
        textView.performClick();
    }
};