自定义Button形状(圆形、椭圆)

这里介绍2种改变Button形状的方法,一个是直接通过设置一张圆形背景图片,

另一种方法是通过引用自定义的shape 文件。具体参见如下:

--------main_menu_btnshape.xml              自定义形状xml文件

<?xml version="1.0" encoding="utf-8"?>

<shape

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:shape="oval">

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

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

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

     <!-- android:radius 弧形的半径 -->

     <corners android:radius="360dip"/>

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

     <padding

        android:left="10dp"

        android:top="10dp"

        android:right="10dp"

        android:bottom="10dp"

     />

</shape>

-----Main    layout文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView 

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/soft_info"

/>

<!—直接设置背景 -->

<Button

    android:id="@+id/roundBtn1"

    android:background="@drawable/btn_oval"

    android:layout_width="50dip"

    android:layout_height="50dip"

    />   

<!—  调用shape自定义xml文件 -->

<Button

    android:id="@+id/roundBtn"

    android:text="椭圆按钮"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/main_menu_btnshape"

    />   

</LinearLayout>

----acitivity文件

public class MyLifeActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

}
时间: 2024-11-08 08:58:26

自定义Button形状(圆形、椭圆)的相关文章

android自定义View绘制圆形头像与椭圆头像

要实现这两种效果,需要自定义View,并且有两种实现方式. 第一种: public class BitmapShaders extends View { private  BitmapShader bitmapShader = null; private Bitmap bitmap = null; private Paint paint = null; private ShapeDrawable shapeDrawable = null; private int BitmapWidth  = 0

android自定义view-打造圆形ImageView(四)终结篇

前言: 说实话,这段时间忙着修改毕业论文,好长时间没有碰代码了,真是罪过呀.今天我们就来奉上我们打造圆形ImageView的终结篇,以后如果还有新的创意再说啦.本文是在前面三篇的基础上得来的,详细请戳android自定义view-打造圆形ImageView(一).android自定义view-打造圆形ImageView(二).android自定义view-打造圆形ImageView(三). 效果图: 正文: 其实看了上面的效果图,大家应该都一目了然了,就是很多应用经常见到的带有白色边缘的渐变头像

使用C#创建自定义背景色/形状的菜单栏与工具栏

C#对于菜单栏与工具栏都提供了统一的背景色,形状的渲染类,即ToolStripRenderer类,同时根据不同的情形,提供了多个继承类,分别是ToolStripProfessionalRender,ToolStripSystemRenderer,本片文章将通过继承ToolStripProfessionalRender来实现菜单与工具栏的自定义 1.通过VS2008创建一个C#类,并命名为CustomProfessionalRenderer.cs 2.在CustomProfessionalRend

Firemonkey 自定义Button的Style

这篇文章模仿HTML中基于CSS的Button,通过Style实现自定义样式的Button. 前言 主要模仿的CSS代码如下: CSS Code 123456789101112131415161718192021222324252627   a.button{    text-align:center;    display:block;    width:50px;    color:#fff;    text-decoration:none;    font-weight:700;    l

iOS_Swift初识之使用三种回调方式自定义Button

最近在学习Swift ,发现青玉伏案大神早期用OC写的一篇博客--IOS开发之自定义Button(集成三种回调模式)  很适合用来熟悉Swift的回调方式,于是我就用Swift翻版了一下,具体实现原理就不多说了,主要贴上Swift的代码给大家看看.由于刚开始了解Swift,有使用不恰当的地方请轻拍.... 上代码: 1.新建一个xib,拖一个UIView到界面上,绑定上自定义的UIView类,拖一个UILabel到view上,写上Button假装是个UIButton:并将label拖到代码当中

cocos2d-x自定义Button

cocos2d-x中封装CCMenuItem等相关按钮,但是有些时候需要自己封装按钮,这样能够更加灵活的实现对应功能. 自定义Button,需要重写OnEnter()和onExit()函数,并在对应函数中添加注册和取消注册. BaseButton.h内容 1 #ifndef BaseButton_H_H 2 #define BaseButton_H_H 3 4 #include "cocos2d.h" 5 using namespace cocos2d; 6 7 typedef SEL

自定义button

1.何为自定义button? 顾名思义会想到DIY,自然是系统提供的button不能够满足我的需求就需要自己DIY一个适用的button: 比如我项目中遇到的需求: (这种图片在上文字在下的,系统自然不能满足,这就需要自己写一个button) 2.自定义button的思路? 根据需求,不同之处在于button中的image和title位置的变化:所以需要重写UIButton: 首先需要重写两个方法: -(instancetype)initWithCoder:(NSCoder *)aDecoder

简单自定义Button

继承自UIButton的 首先我们要知道为什么要自定义Button,因为现有的Button无法满足我们要实现功能的要求 比如我们要给Button新添加一些属性的时候,如果写分类,就要研究一下进行时,显然这样没有添加一个子类来的痛快. 再有我们对按钮的内部标题和图片的布局不满意的时候也可以自定义,有人会使用使用titleEdgeInsert和imageEdgeInsert属性调整,这两个属性配合只能满足简单的要求,稍微复杂点就不行了. 如何添加一个子类: 首先要创建一个类继承自UIButton类

IOS开发之自定义Button(集成三种回调模式)

前面在做东西的时候都用到了storyboard,在今天的代码中就纯手写代码自己用封装个Button.这个Button继承于UIView类,在封装的时候用上啦OC中的三种回调模式:目标动作回调,委托回调,Block回调.具体的内容请参考之前的博客:“Objective-C中的Block回调模式”,“Target-Action回调模式”,“Objective-C中的委托(代理)模式”.在接下来要封装的button中将要用到上面的知识点.之前在做新浪微博中的Cell的时候用到了Block回调来确定是那