Android button样式修改

本文介绍如何在Android中为Button添加边框。通过使用layer-list资源文件,详细阐述了设置边框的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、为button添加边框

(1)在layer-list中设置

<?xml version="1.0" encoding="UTF-8"?>  
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">   
<!-- 边框颜色值 --><item>   
      <shape>   
            <solid android:color="#EBEBEB" />   
      </shape>   
</item>   
<!-- 主体背景颜色值    -->
<item android:left="1dp" 
    android:right="1dp"
    android:top="1dp"
    android:bottom="1dp"
    >   
     <shape>   
           <solid android:color="#ffffff" />  <!--button填充颜色-->
             
           <padding android:bottom="10dp"  
                android:left="10dp"  
                android:right="10dp"  
                android:top="10dp" />  
     </shape>       
</item> 
</layer-list>  
(2)通过selector设置

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item><pre name="code" class="html"><span style="white-space:pre">	</span><stroke android:width="1dip" android:color="#EBEBEB" />
    </item> 
</selector>
 
<shape><!-- 边框的颜色与宽度 --> <stroke android:width="1dip" android:color="#EBEBEB" /> <!-- button填充的颜色 --> <solid android:color="#ffffff"></solid> </shape> </item></selector> 

 2、设置button圆角效果,边框与点击button颜色变换 

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:state_pressed="false">
           <shape android:shape="rectangle" >
            <!-- 边框的颜色 -->
            <stroke android:width="1dip" android:color="#EBEBEB" />
            <!-- 填充的颜色 -->
            <solid android:color="#ffffff"></solid>
            <!-- 设置按钮的四个角为弧形 -->
            <!-- android:radius 弧形的半径 -->
            <corners android:radius="8dip" />
            <!-- padding:Button里面的文字与Button边界的间隔 -->
            <padding android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp" />
        </shape>
    </item>
    <item android:state_pressed="true">
     <shape android:shape="rectangle">
            <solid android:color="#EBEBEB" />
            <corners android:radius="8dip" />
         </shape>
    </item> 
</selector>


讨论技术欢迎加群:翻转世界IT 386707638


 


### 自定义 Android Button 样式 #### 定义自定义属性 为了实现更灵活的样式控制,在 `res/values` 文件夹下创建一个新的 XML 文件 `attrs.xml` 来声明自定义属性。这允许开发者通过 XML 布局文件设置特定于组件的行为和外观。 ```xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CustomButton"> <attr name="customTextColor" format="color"/> <!-- 可以继续添加其他自定义属性 --> </declare-styleable> </resources> ``` 这些自定义属性将在后续用于配置按钮的颜色和其他特性[^5]。 #### 创建 Drawable 资源文件 接着,为按钮设计不同的状态下的显示效果,通常会使用 State List drawable (即 `<selector>` )来描述不同状态下(按下、禁用等)的视觉表现形式。 在 `res/drawable/custom_button.xml` 中编写如下代码: ```xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/colorPressed"/> <!-- pressed --> <item android:state_focused="true" android:drawable="@color/colorFocused"/> <!-- focused --> <item android:drawable="@color/colorNormal"/> <!-- default --> </selector> ``` 此部分定义了当按钮处于按压态、聚焦态以及默认情况下所呈现的不同颜色[^3]。 #### 修改 Java 类以支持新属性 为了让自定义属性生效,需修改或创建对应的 View 组件类,并在其构造函数中读取并应用这些属性。 ```java package com.example; import android.content.Context; import android.util.AttributeSet; import android.widget.Button; public class CustomButton extends Button { public CustomButton(Context context, AttributeSet attrs) { super(context, attrs); // 获取自定义属性集中的值 TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CustomButton); int customColor = a.getColor(R.styleable.CustomButton_customTextColor, Color.BLACK); setTextColor(customColor); a.recycle(); } } ``` 这段代码展示了如何解析来自 XML 的自定义属性并将它们应用于视图实例上[^2]。 #### 使用自定义 Button 控件 最后一步是在应用程序界面布局中引入这个新的控件。只需简单地将标准的 `<Button>` 替换成完整的包路径加上自定义类名称即可。 ```xml <com.example.CustomButton android:id="@+id/myCustomButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击这里!" app:customTextColor="#FF0000" /> ``` 上述代码片段说明了怎样利用之前定义好的自定义属性给按钮指定文字颜色[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值