Android如何扩大按钮点击区域
2015-08-11 13:25
483 查看
注:这里实现的扩大按钮点击区域是使按钮的实际可点击区域大于我们所见的区域。
方法一:通过ImageView ImageButton实现
<ImageButton
android:layout_width="44dp"
android:layout_height="44dp"
android:background="@null"
android:padding="5dp"
android:cropToPadding="true"
android:adjustViewBounds="true"
android:src="@drawable/jiantou_l" />
通过设置 android:cropToPadding="true" android:padding="5dp" 是按钮实际大小为 44dp,而实际显示区域为39dp。
这样就可以解决因为按钮太小不好点击的问题。但是当我们使用的按钮上有文字的时候这种方法可能就没法满足要求了,这时候
我们需要用到第二种方法
方法二:通过自定义drawable文件解决
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape>
<solid android:color="@color/transparent" />
</shape>
</item>
<item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp">
<shape>
<!-- 中间的背景色 -->
<solid android:color="@color/bt_bg_color_pressed_solid" />
<!-- 设置四个角的角度 -->
<corners android:radius="6dp" />
<!-- 边缘线的宽度和颜色 -->
<stroke android:width="1dp" android:color="@color/bt_bg_color_pressed_stroke" />
</shape>
</item>
</layer-list>
</item>
<item android:state_pressed="false">
<layer-list>
<item>
<shape>
<solid android:color="@color/transparent" />
</shape>
</item>
<item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp">
<shape>
<!-- 中间的背景色 -->
<solid android:color="@color/down_color" />
<!-- 设置四个角的角度 -->
<corners android:radius="6dp" />
<!-- 边缘线的宽度和颜色 -->
<stroke android:width="1dp" android:color="@color/down_color" />
</shape>
</item>
</layer-list>
</item>
</selector>
通过 <layer-list> 将两个 shape进行叠加 <item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp"> 通过设置第二个 shape的左右边距,从而达到扩大点击区域的效果。
方法一:通过ImageView ImageButton实现
<ImageButton
android:layout_width="44dp"
android:layout_height="44dp"
android:background="@null"
android:padding="5dp"
android:cropToPadding="true"
android:adjustViewBounds="true"
android:src="@drawable/jiantou_l" />
通过设置 android:cropToPadding="true" android:padding="5dp" 是按钮实际大小为 44dp,而实际显示区域为39dp。
这样就可以解决因为按钮太小不好点击的问题。但是当我们使用的按钮上有文字的时候这种方法可能就没法满足要求了,这时候
我们需要用到第二种方法
方法二:通过自定义drawable文件解决
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape>
<solid android:color="@color/transparent" />
</shape>
</item>
<item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp">
<shape>
<!-- 中间的背景色 -->
<solid android:color="@color/bt_bg_color_pressed_solid" />
<!-- 设置四个角的角度 -->
<corners android:radius="6dp" />
<!-- 边缘线的宽度和颜色 -->
<stroke android:width="1dp" android:color="@color/bt_bg_color_pressed_stroke" />
</shape>
</item>
</layer-list>
</item>
<item android:state_pressed="false">
<layer-list>
<item>
<shape>
<solid android:color="@color/transparent" />
</shape>
</item>
<item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp">
<shape>
<!-- 中间的背景色 -->
<solid android:color="@color/down_color" />
<!-- 设置四个角的角度 -->
<corners android:radius="6dp" />
<!-- 边缘线的宽度和颜色 -->
<stroke android:width="1dp" android:color="@color/down_color" />
</shape>
</item>
</layer-list>
</item>
</selector>
通过 <layer-list> 将两个 shape进行叠加 <item android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp"> 通过设置第二个 shape的左右边距,从而达到扩大点击区域的效果。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法