背景色渐变与Button点击效果与Button圆角

最近自己搞的Android时,感觉自己做的Android很单调,而且用户体验很差,Button按下去后不知到是否按下了,于是想提升以下用户体验,看了一下现在的软件,别人的按钮都有点击效果,单调的背景也是看起来很烦,于是便上网查了一下怎么改变这些问题,看了一下感觉用法都差不多。

先说一下怎么使背景是渐变色,先在Drawable文件夹下创建一个Drawable resource file

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

</selector>

之后把selector改成shape(如果改了后报错,一定是你的生成文件生成错了,我一开始直接新建XML文件,老是报错,之后建了Drawable resource file可以改了),再添加gradient,代码如下,之后只要在你想要的控件或者Layout中设置android:background:@drawable/xxxxxx(xxxx为你的渐变背景的xml文件名)就可以了。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 第一个跟第二个是设置起始颜色跟末尾颜色,第三个是设置角度,之后它会自动生成渐变的颜色-->
    <!--颜色的话可以在values中的color文件下自己设置,再在这里@color调用,角度只能是45°的倍数-->
    <gradient
        android:startColor="@color/colorstart"
        android:endColor="@color/colorend"
        android:angle="315">
    </gradient>
</shape>

接下来说使控件变成圆角,跟上面一样,新建一个Drawable Resource file,调用的方法也是设置background属性,之后代码如下。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--上面的shape设置控件的形状,rectangle为矩形-->
    <!--使控件是实体,并且改变控件颜色-->
    <solid android:color="#4d4a4a"></solid>
    <!--控件4个角的角度-->
    <corners
        android:bottomLeftRadius="30dp"
        android:bottomRightRadius="30dp"
        android:topLeftRadius="30dp"
        android:topRightRadius="30dp" />
</shape>

接下来说使Button有点击效果,说到底就是点击时Button的颜色有所改变,这样就能分辨Button是否有被点击过,提高用户体验。这次的文件不用改变selector为shape,设置也是android:background:@drawable/xxxxx,代码如下.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--state_pressed为按钮的状态,分为没被按下跟被按下,之后在android:color="@color/"中设置对应的颜色-->
    <!--我这里的drawable是样式与点击效果的结合,创建了两个相同的样式文件,改变其中一个样式的颜色,在这里调用就能把样式与点击效果结合,毕竟控件的background属性只能设置一次,想实现俩种效果,我想了之后就这么做了,有好的做法的兄弟请告诉我-->
    <item android:drawable="@drawable/round_button" android:state_pressed="false" />
    <item android:drawable="@drawable/round_selected_button" android:state_pressed="true" />
</selector>
---------------------  
作者:进击的菜狗子  
来源:CSDN  
原文:https://blog.csdn.net/CASER_HDMI/article/details/51203021  
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值