android 通过shape设置圆形按钮

  Android中常常使用shape来定义控件的一些显示属性来美化UI;

shape的常用属性有:

(1)solid:填充,设置填充的颜色;

(2)stroke:描边,设置边界的宽度、颜色等;

(3)corners:圆角,五个属性,全部设置的话,会覆盖;

  android:radius="20dp"                          设置四个角的半径

  android:topLeftRadius="20dp"              设置左上角的半径 
  android:topRightRadius="20dp"            设置右上角的半径 
  android:bottomLeftRadius="20dp"        设置右下角的半径 
  android:bottomRightRadius="20dp"      设置左下角的半径

(4)padding:定义内容离边界的距离,其中的属性类似于android:padding_left,android:padding_right;

(5)gradient:对应颜色渐变;当设置填充颜色后,无渐变效果,android:angle 是指从哪个角度开始变,angle的值必须是45的倍数(包括0),仅在type="linear"有效,不然会报错;

(6)size:设置大小;

例如:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/hello_world"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/roundButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:background="@layout/shape1"
            android:text="@string/button1" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:background="@layout/shape2"
            android:text="@string/button1" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:background="@layout/shape3"
            android:text="@string/button1" />
    </LinearLayout>

</LinearLayout>

shape1.xml:

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

    <!-- 填充的颜色 -->

    <solid android:color="#99FFFF" />

    <!-- 设置按钮的四个角为弧形 -->

    <corners android:radius="20dp" />

    <!-- padding:Button里面的文字与Button边界的间隔 -->

    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

shape2.xml

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

    <!-- 填充的颜色 -->

    <solid android:color="#FFCC66" />

    <!-- 设置按钮的左下角和右下角是圆形边框 -->

    <corners
        android:bottomLeftRadius="20dp"
        android:bottomRightRadius="20dp" />

    <!-- 描边 -->

    <stroke
        android:width="1dp"
        android:color="#000000" />

    <!-- padding:Button里面的文字与Button边界的间隔 -->

    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

shape3.xml

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

    <!-- 填充的颜色 -->

    <solid android:color="#996600" />

    <!-- 设置按钮的左上角和右上角为圆形边框 -->

    <corners
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"
        />

    <!-- padding:Button里面的文字与Button边界的间隔 -->

    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

MainActivity.java

package com.xiaozhang.listview2;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button roundButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        roundButton = (Button) findViewById(R.id.roundButton);

        roundButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "你点击了圆角按钮", Toast.LENGTH_LONG)
                        .show();
            }
        });
    }
}
时间: 2024-12-28 23:30:43

android 通过shape设置圆形按钮的相关文章

Android中Shape的使用

先看一下文档对Shape Drawable的描述: Shape Drawable An XML file that defines a geometric shape, including colors and gradients.一个定义几何形状的XML文件,包括颜色和渐变. 创建一个ShpeDrawable对象 用Android:background="@drawable/xxx.xml"或相应的Java代码引用,Shape Drawable说白了就是可自定义的多样化的背景. 现在

Android drawable shape用法

android shape的使用 shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下:复制代码 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 圆角 --> <corners andro

Android中shape属性详解

一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用. 1.新建shape文件 首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.xml 内容是这样的:(先不需要理解,先看shape怎么用) [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="ht

Android的shape

android shape的使用 shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 圆角 --> <corners android:r

Android给TextView设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建text_view_border.xml [java] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid an

Android学习—Shape

Shape Drawable  An XML file that defines a geometric shape, including colors and gradients.一个定义几何形状的XML文件,包括颜色和渐变. 简介 作用:XML中定义的几何形状 位置:res/drawable/文件的名称.xml 使用的方法: Java代码中:R.drawable.文件的名称 layout中:android:background=”@drawable/文件的名称” 属性 <shape>  a

Android中shape的基本使用

shape用于设定形状,可以在selector,layout等里面使用,点击效果神马的我们可以不需要UI的切图,自己直接使用shape搞定,比较方便快捷. 新建一个shape.xml默认为矩形,可以通过android:shape=""来设置具体的形状,有这么四种:rectangle 矩形,oval 椭圆形,line 线,ring 环形.shape有6个子标签,各属性如下: <?xml version="1.0" encoding="utf-8&quo

cocos2d-x 移植android横竖横屏设置

AndroidManifest.xml中android:screenOrientation字段控制屏幕方向,默认情况是横屏 android:screenOrientation="landscape" //横屏 android:screenOrientation="portrait"//坚屏 cocos2d-x 移植android横竖横屏设置,布布扣,bubuko.com

Android的配置设置

保留的 Android 清单设置 Android 权限 Android 自定义 URI 方案 Android 兼容性筛选 安装位置 在 StageWebView 对象中启用 Flash Player 和其他插件 颜色深度 在 Android 平台上,可以使用应用程序描述符的 android 元素将信息添加到 Android 应用程序清单,该清单是 Android 操作系统使用的应用程序属性文件.创建 APK 包时,ADT 会自动生成 Android Manifest.xml 文件.AIR 会将几