您的位置:首页 > 移动开发 > Android开发

Android进阶之路 - 水波纹的点击效果

2017-06-19 18:28 267 查看
看了几篇文章,文章所言要实现水波纹的效果需要最小编译版本为21,之前我只是认为5.0之后,手机会自带水波纹,明显有些错误

Effect :



build :

minSdkVersion 21


if (minSdkVersion 21 = true){

can user ripple

}

如上所诉sdk21之后,可以使用ripple,而ripple便是实现水波纹的一个关键,我们在drawable 创建一个xml ,以ripple为最外层

ripple_bg.xml :

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF21272B">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
</shape>
</item>

<!--下面这一行, 写不写貌似无所谓-->
<item android:drawable="@drawable/rounded_corners" />
</ripple>


rounded_corners.xml(这个写不写,我觉得无所谓) :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
</shape>


MainActivity :

package com.example.dow.watereffect;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView mBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mBtn = (TextView) findViewById(R.id.tv_btn);
//如果不设置点击事件,水波纹是没有效果的
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

}
});
}
}


MainActivity Xml :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.dow.watereffect.MainActivity">

<TextView
android:layout_centerInParent="true"
android:id="@+id/tv_btn"
android:background="@drawable/ripple_bg"
android:layout_width="match_parent"
android:padding="8dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Sdk21才能用的水波纹?" />
</RelativeLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 水波纹