21.按钮的个性化设计

Posted 孤舟一夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21.按钮的个性化设计相关的知识,希望对你有一定的参考价值。

颜色使用十六进制表示的网址

https://www.sioe.cn/yingyong/yanse-rgb-16/

 

本文主要给介绍两种安卓按钮的个性化设计。

1.简单实现一个个性化的按钮

2.实现按钮按下和没有按下是两种风格

 

原理:

设计安卓按钮的个性,其实就是给他加上一个背景的属性,

再对这个背景进行设置即可达到目标的结果,

 

按钮的xml设置

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:background="@drawable/yuanjiao"
        android:gravity="center"
        android:text="圆角Button"

        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"

        android:background="@drawable/complete"
        android:gravity="center"
        android:text="完美Button"

        />

 

接下来就是设计这个背景,

背景的创建是这个

在项目的res下右击,点击new,点击android resource file

然后

 

 

然后就可以见到这样的一个界面生成了

 

 

然后下一步,就可以在里面编写代码进行设置了,

下面是代码

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >


    <!-- 填充颜色 -->
    <solid
        android:color="#9fd4ff"
    />

    <!-- 圆角使用,圆角半径-->
    <corners
        android:radius="10dp"></corners>


    <!-- 渐变效果-->
    <!-- 渐变类型放射,角度,开始颜色 -->
    <gradient
        android:useLevel="false"
        android:type="linear"
        android:angle="45"
        android:startColor="#ff96ba"
        android:centerColor="#ffe030"
        android:endColor="#FF96DEFF"
    />

    <!-- 内边距  // 设置底部边距  // 左边边距// 右边// 顶部-->
    <padding
        android:bottom="1dp"
    android:left="3dp"
    android:right="3dp"
    android:top="2dp"
    />

    <!-- 大小  // 宽度    // 高度-->
    <size
        android:height="115dp"
    android:width="25dp"
    />

    <!-- 描边 // 描边的颜色 // 描边的宽度// 虚线间隔 // 虚线宽度-->
    <stroke
        android:color="#FFFF6A9D"
        android:width="5dp"
        android:dashGap="5dp"
        android:dashWidth="5dp"></stroke>


</shape>

效果:

 

 这就不一样了奥!!

 

 

 

第二种,可以按下按钮时让按钮有所变化,而且不是通过逻辑代码完成,只需要在背景里面加入属性。

和第一个不一样的是他创建背景的时候的步骤是

 

 选了这个生成了就和上面的不一样了,毕竟这第二个可是两个shape

创建好了之后,

代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><!--被按下时-->
        <shape android:shape="oval"><!--默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)-->
            <corners android:radius="15dp" />   <!--圆角-->
            <solid android:color="#ffcece"/>       <!--内部填充色-->
        </shape>
    </item>



    <item android:state_pressed="false"><!--最后一个item不设置state_pressed时表示所有其他状态(只有在最后才能不写state_pressed不然之后的item会被忽略)-->
        <shape >
            <corners android:radius="15dp" />
            <gradient
                android:type="linear"
                android:useLevel="false"
                android:angle="45"
                android:startColor="@color/colorAccent"
                />
        </shape>
    </item>

</selector>

 

 

 

本文参考至:

https://blog.csdn.net/qq_15128547/article/details/56680494

以上是关于21.按钮的个性化设计的主要内容,如果未能解决你的问题,请参考以下文章

重新创建片段布局

从 Activity 到特定选项卡/片段的按钮 OnClick

如何在 viewPager 中使用按钮更改页面?

21个常用代码片段

如何从Android中的片段单击按钮打开片段

按下锁定/主页按钮时的通知,单击返回选项卡片段时的通知