Android(安卓)实现圆角按钮(selector和shape的简单用法)
16lz
2021-01-26
首先扯点别的:这两天一直浑浑噩噩的,不知道干啥,什么也不想干,整日胡思乱想。如今已是春天了,已经过了惊蛰(虽然即墨这几天有点冷),可是我还是没有从一种行尸走肉的麻木中醒过来,不知道自己在干什什么,以后将要都走向哪里。
1. 进入正题,今天简单的演示一下Android中如何实现圆角按钮。使用了selector和shape.先看效果吧,感觉效果不是你想要的,果断pass掉。
按钮没有被点击效果
按钮被点击后的效果
1 xml布局没说的,就是一个Button.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" ><!--注意 android:background="@drawable/btn_selector"--> <Button android:id="@+id/Button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/btn_selector" android:text="@string/hello_world" /></RelativeLayout>
2 注意到上面的Button的background属性
android:background="@drawable/btn_selector" 其中的btn_selector是一个自定义的xml文件,继续看这个文件
3在工程的res目录下面新建一个forlder命名成drawable(小写英文的,注意别写错了),然后在drawable目录下新建一个selector文件
btn_selector.xml,大家应该秒懂这个文件的内容和意思吧!当按钮正常没有被按下的时候显示一个背景,按下的时候则显示另外一个颜色的背景,这样可以使用户得知按钮被按下了。
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Button正常状态下的背景 --> <item android:drawable="@drawable/btn_bg_normal" android:state_pressed="false"/> <!-- Button按下时的背景 --> <item android:drawable="@drawable/btn_bg_pressed" android:state_pressed="true"/></selector>
4 从btn_selector.xml文件中大家又发现了btn_bg_normal和btn_bg_pressed,这两个文件也是在drawable目录下的
4.1 在drawable 目录下新建两个 shape文件分别是btn_bg_normal.xml,和btn_bg_pressed.xml文件
btn_bg_normal.xml
<?xml version="1.0" encoding="utf-8"?><!-- 按钮正常的时候的背景 --><!-- shape的默认形状是rectangle,还有oval(椭圆),line(线),ring(圆环),我就用过rectangle,其他的大家可以试一试 --><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 矩形的圆角弧度 --> <corners android:radius="10dp" /> <!-- 矩形的填充色 --> <solid android:color="#ff3344"/> <!-- 矩形的边框的宽度和颜色 --> <stroke android:width="1dp" android:color="#4eb621"/></shape>
btn_bg_pressed.xml
<?xml version="1.0" encoding="utf-8"?><!-- 按钮按下的时候的背景 --><!-- shape的默认形状是rectangle,还有oval(椭圆),line(线),ring(圆环),我就用过rectangle,其他的大家可以试一试 --><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 矩形的圆角弧度 --> <corners android:radius="10dp" /> <!-- 矩形的填充色 --> <solid android:color="#434b3f"/> <!-- 矩形的边框的宽度和颜色 --> <stroke android:width="1dp" android:color="#4eb621"/></shape>
大家可以看出来这两个文件只有一个属性取值不同,就是矩形的填充的颜色不一样
<!-- 矩形的填充色 --> <solid android:color="#434b3f"/>
最后Activity代码也贴一下
package com.example.testswipelayout;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.Toast;public class Main2Activity extends Activity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); button1=(Button) findViewById(R.id.Button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(Main2Activity.this, "按钮被点击", Toast.LENGTH_SHORT).show(); } }); }}
结尾:这里只是简单演示了一下如何制作圆角按钮,但是关于selector和shape的用法,如果大家有兴趣,可以再仔细研究研究。讲的不好大家就多多包含,要是有错误大家可以反馈给我,感激不尽,我也不想误人误己。
更多相关文章
- Android中通过代码改变系统文件都写权限
- Android使用NDK时编译头文件的问题
- android studio初体验
- application中 android:icon 和 android:roundIcon 的区别
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点
- Android解决读取txt文件中文乱码问题,reload和cnvert区别,按行读取
- Android(安卓)NDK——使用Android(安卓)Studio引用so库,jar包、mo
- Android(安卓)CrashHandler编写自己的异常捕获类
- Android基于回调的事件处理