Material Designer的低版本兼容实现(七)—— Rectange Button

矩形按钮是我们很常用的控件,让其拥有5.0动效必须自定义控件。本文讲解的控件是参考:

https://github.com/shark0017/MaterialDesignLibrary

一、放入布局文件

 我们在添加这view的时候需要写一个命名空间

xmlns:materialdesign="http://schemas.android.com/apk/res-auto

<com.gc.materialdesign.views.ButtonRectangle
                android:layout_width="wrap_content"
                android:layout_height="wrap_content""/>

这个就是最原始的控件了,我们参照了官方控件的尺寸,定义了最小的宽高是:w=80,h=36

这个控件在eclipse中是看不到具体样子的,我虽然已经尽可能把代码写的较为可视化了,但由于是由lib导入的关系,所以还是没办进行编译器中实时展示。不过真正运行出来的时候样子是完全正常的啦。下面来看看实际运行出来的样子。

二、在布局文件中进行设置各种属性

默认的属性值

android:background="#1E88E5"  设置按钮的背景色,默认是蓝色

android:text=""  设置按钮上的文字,默认无文字

android:textSize="12sp"  设置按钮上文字的大小,默认12(反正不是12就是14,总之就是textView的默认文字大小)

android:textColor="#ffffff"  设置按钮文字的颜色,默认是白色

app:rippleColor="#xxxxxx"  设置按钮涟漪的颜色,默认是根据背景色来动态设置的。如果你设定了涟漪颜色,那么就不会根据背景色来动态产生涟漪颜色。

app:rippleSpeed="5.5f"   涟漪的扩散速度5.5f,数组越大越快。你可以看见如果速度为2的话扩散的很慢

app:clickAfterRipple="true"  是否在涟漪扩散完后再触发点击事件,默认是涟漪消失后才出发点击事件

三、通过代码进行设定各种属性值

package com.example.hhh;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;

import com.gc.materialdesign.views.ButtonRectangle;

public class ButtonRectangleTest extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.button_rectangle);
        
        ButtonRectangle btn = (ButtonRectangle)findViewById(R.id.button);

        btn.setBackgroundColor(getResources().getColor(R.color.orange));// 设定按钮背景

        btn.setBackgroundColor(0xffff0000);// 设定按钮背景

        btn.setText("代码:setText");// 自定义文字
        
        btn.setTextSize(30);// 自定义文字大小
        
        btn05.setTextColor(0xffffc641);// 自定义文字颜色
        
        btn06.setTextColor(getResources().getColor(R.color.red));// 通过资源定义文字颜色
        
        btn07.setRippleColor(0xffffc641);// 设置涟漪颜色
        
        btn08.setRippleColor(getResources().getColor(R.color.orange));// 通过资源设定涟漪颜色
        
        btn09.setRippleSpeed(2);// 涟漪扩散的速度
        
        btn10.setClickAfterRipple(false);// 点击后立刻响应click事件,不管涟漪是否扩散完毕
    }
}
原文地址:https://www.cnblogs.com/tianzhijiexian/p/4135993.html