Android--自定义Button的样式以及动态渐变效果
来源:互联网 发布:中国平安管培生 知乎 编辑:程序博客网 时间:2024/04/28 14:00
之前开发使用过自定义样式的Button,使用挺简单的,但也很常用,因此总结一下。
1,使用drawable文件自定义静态的Button样式
首先,自定义一个drawable文件custombutton.xml:
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 边框颜色值--> <item> <shape> <!--圆角 --> <corners android:radius="20dp"></corners> <!--边框颜色--> <solid android:color="#fff"></solid> </shape> </item> <!-- 主题背景颜色值--> <item android:bottom="1dp" android:right="1dp" android:top="1dp" android:left="1dp"><!--设置四个边框(根据需要选择对应边框)--> <shape> <gradient android:centerX="0.5" android:centerY="0.5" /><!--与底层的垂直距离(阴影的效果)--> <padding android:left="2dp" android:top="2dp" android:right="2dp android:bottom="2dp" /> <!-- 圆角 --> <corners android:radius="20dp"/> <solid android:color="ffffff"/><!--设置button的边框里内容的背景色--> </shape> </item></layer-list>
然后在xml布局文件中:<Button android:layout_width="wrap_content" style="?android:attr/borderlessButtonStyle" android:layout_height="wrap_content" android:background="@drawable/custombutton" android:text="这是测试按钮"/>
如果添加下边这一句会去掉Button的默认底色,只留下文字,我们使用自定义的话不需要添加这一句,只需要给Button的背景添加我们自定义的custombutton。style="?android:attr/borderlessButtonStyle
2,Button实现动态渐变效果
先写一个选择器内容是:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <!-- 定义当button 处于pressed 状态时的形态。--> <shape> <gradient android:startColor="#8600ff" /><!--内容实现渐变--> <stroke android:width="2dp" android:color="#000000" /><!--边框宽度和颜色--> <corners android:radius="5dp" /><!--圆弧半径--> <padding android:left="10dp" android:top="10dp" android:bottom="10dp" android:right="10dp" /> </shape> </item> <item android:state_focused="true"> <!-- 定义当button获得focus时的形态--> <shape> <gradient android:endColor="#eac100" /> <stroke android:width="2dp" android:color="#333333" /> <corners android:radius="8dp" /> <padding android:left="10dp" android:top="10dp" android:bottom="10dp" android:right="10dp" /> </shape> </item></selector>
为button添加选择器,布局文件:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.a51ckck.custombutton.MainActivity"> <TextView android:id="@+id/tv_main_show" android:background="#f0f000" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="你好习哥!!" android:textColor="#ff0000" android:gravity="center" /> <Button android:id="@+id/bt_main_click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:background="@drawable/dynamic" android:text="点击按钮" android:layout_centerInParent="true" /></RelativeLayout>最后需要在Activity中为Button添加焦点:
public class MainActivity extends AppCompatActivity { private TextView mTextView; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView= (TextView) findViewById(R.id.tv_main_show); mButton= (Button) findViewById(R.id.bt_main_click); setData(); } private void setData() { mButton.setFocusable(true); mButton.setFocusableInTouchMode(true); mButton.requestFocus(); mButton.requestFocusFromTouch(); } public void click(View view) { if(view!=null){ mTextView.setText("你好彭嫂!!!"); } }}虽然不复杂,但是确是常使用的,所以掌握它是非常有必要的,最终来看一下效果图:
阅读全文
0 0
- Android--自定义Button的样式以及动态渐变效果
- Android的button颜色渐变效果:
- Android 动态渐变button
- android button自定义触摸前以及触摸时的样式
- android自定义控件,动态设置Button的样式
- android自定义控件,动态设置Button的样式
- android自定义控件,动态设置Button的样式
- android自定义控件,动态设置Button的样式
- android自定义控件,动态设置Button的样式
- android自定义button样式
- android自定义button样式
- android自定义button样式
- android 自定义button样式
- android 自定义 button样式
- android自定义button样式
- Android Button 中绚丽渐变效果的设置 如此简单。。。
- Android Button 中绚丽渐变效果的设置 如此简单。。。
- Android selector自定义shape的button样式
- 一份不错的php面试题(附答案)
- Linux tar.gz文件不全时解压错误现象
- 反射
- antd-mobile
- HTML5的 input:file上传类型控制
- Android--自定义Button的样式以及动态渐变效果
- 一个特殊的android横向布局
- RxJava /RxAndroid
- 使用jsonpath从kettle转换json2csv
- linux中文件颜色和类型说明
- sqlplus 连接Oracle 乱码的 解决方法
- 【mysql 用户权限管理】mysql 权限管理学习
- c++ 单例
- bzoj 3329: Xorequ 数位dp+矩阵乘法