响应事件
@SuppressLint("ClickableViewAccessibility")
private void initBtn() {
/**
* 点击事件
*/
btn.setOnClickListener(view->{
Toast.makeText(this, "点击响应", Toast.LENGTH_SHORT).show();
});
/**
* 长按响应
*/
btn.setOnLongClickListener(view->{
Toast.makeText(Activity_Button.this, "长按响应", Toast.LENGTH_SHORT).show();
return true;
// 返回值为true,则会屏蔽点击事件(不再回调点击事件方法)。返回false,则会调用点击事件
});
/**
* 触摸事件
*/
btn.setOnTouchListener((view,motionEvent)->{
Toast.makeText(this, "触摸事件", Toast.LENGTH_SHORT).show();
return true;
// 返回值为true,则会屏蔽点击事件和长按事件。返回false,则不会屏蔽
});
}
效果展示
Toast触发位置设置
这是应用层面的设置
**第一个参数:**表示具体的位置,可以使用Gravity.CENTER、Gravity.TOP、Gravity.LEFT等表示;
**第二个参数:**表示可移动的方向,左右方向,如果想向右移动,设置改参数大于0就可以了,如果是0则不移动;
**第三个参数:**它的功能与第二个参数相同,它表示上下方向,如果想向下移动,增大该参数就可以了;
注意:后两个参数的单位都指的是像素
使用实例如下:
Toast mToast =Toast.makeText(this,"this is a toast",Toast.LENGTH_LONG);
mToast.setGravity(Gravity.CENTER,100,280);
mToast.show();
效果展示
点击事件设置了居中显示,长按设置了顶部显示。
动态改变按钮样式
想要在点击按钮前和点击按钮后的样式不一样就需要设置为:android:background="@drawable/btnborder"
背景样式设置
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--按钮的默认状态,默认背景色为红色,圆角5dp-->
<!--此处按钮样式使用的直接定义图片样式,还可以引入drawable资源文件,使用android:drawable=""引入资源文件-->
<item android:state_window_focused="false">
<shape>
<solid android:color="#ff0000"></solid>
<corners android:radius="5dp"></corners>
</shape>
</item>
<!--按下时的按钮状态,按下时背景色变为蓝色,圆角5dp-->
<item android:state_pressed="true">
<shape>
<solid android:color="#0000ff"></solid>
<corners android:radius="5dp"></corners>
</shape>
</item>
</selector>
效果图
添加阴影
阴影背景设置
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="-8dp"
android:drawable="@android:drawable/dialog_holo_light_frame"
android:left="-8dp"
android:right="-6dp"
android:top="-6dp">
</item>
<item
android:bottom="-3dp"
android:left="-3dp"
android:right="-6dp"
android:top="-6dp">
<shape android:shape="rectangle">
<corners android:radius="5dp"/>
<solid android:color="@color/transparent" />
</shape>
</item>
</layer-list>