首先扯点别的:这两天一直浑浑噩噩的,不知道干啥,什么也不想干,整日胡思乱想。如今已是春天了,已经过了惊蛰(虽然即墨这几天有点冷),可是我还是没有从一种行尸走肉的麻木中醒过来,不知道自己在干什什么,以后将要都走向哪里。

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的用法,如果大家有兴趣,可以再仔细研究研究。讲的不好大家就多多包含,要是有错误大家可以反馈给我,感激不尽,我也不想误人误己。

更多相关文章

  1. Android中通过代码改变系统文件都写权限
  2. Android使用NDK时编译头文件的问题
  3. android studio初体验
  4. application中 android:icon 和 android:roundIcon 的区别
  5. 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点
  6. Android解决读取txt文件中文乱码问题,reload和cnvert区别,按行读取
  7. Android(安卓)NDK——使用Android(安卓)Studio引用so库,jar包、mo
  8. Android(安卓)CrashHandler编写自己的异常捕获类
  9. Android基于回调的事件处理

随机推荐

  1. (转)Android_GPS
  2. Android—自动弹出软键盘
  3. Android向通讯录添加联系人的一般方法
  4. Android(安卓)对话框【Dialog】去除白色
  5. 【Android】Android实现截取当前屏幕图片
  6. Android中日志信息的打印方式
  7. Android(安卓)语音识别示例
  8. Android(安卓)开发中最常用的 GitHub 优
  9. Android(安卓)Bundle类
  10. Android在TextView中设置图片显示问题