在res目录下的drawable-mdpi建立xml文件shape.xml,如下图所示:
专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业吐鲁番免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
shape.xml
?xml version="1.0" encoding="UTF-8"?
shape
xmlns:android=""
android:shape="rectangle"
!-- 填充的颜色 --
solid android:color="#FFFFFF" /
!-- 设置按钮的四个角为弧形 --
!-- android:radius 弧形的半径 --
corners android:radius="5dip" /
!-- padding:Button里面的文字与Button边界的间隔 --
padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"
/
/shape
main.xml
在android:background="@drawable/shape"就使用了shape.xml资源
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns: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/hello"
/
Button
android:id="@+id/roundButton"
android:text=" 圆角按钮 "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape"
/
/LinearLayout
strings.xml
?xml version="1.0" encoding="utf-8"?
resources
string name="hello"Hello World, RoundButtonDemoActivity!/string
string name="app_name"RoundButtonDemo/string
/resources
RoundButtonDemoActivity.java
package com.android.RoundButtonDemo.activity;
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 RoundButtonDemoActivity extends Activity {
Button roundButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
roundButton=(Button)findViewById(R.id.roundButton);
//使用匿名类注册Button事件
roundButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(RoundButtonDemoActivity.this, "你点击了圆角按钮",Toast.LENGTH_LONG).show();
}
});
}
}
效果图:
可以通过shape设置圆角
!-- 设置圆角 --
corners android:radius="2dp"
/corners
扩展:
?xml version="1.0" encoding="utf-8"?
!-- shape如果不声明形状默认是正方形 --
shape xmlns:android=""
!-- 设置填充色 --
solid android:color="#4285f4"
/solid
!-- 设置边框的颜色和宽度 --
stroke
android:width="1dp"
android:color="#4285f4"
/stroke
/shape
通过selector设置点击效果
button_bg.xml
?xml version="1.0" encoding="utf-8"?
!-- 这个是用于控制按钮组背景的文件 --
selector xmlns:android=""
!-- **点击时效果**********背景引用的资源*************************是否获得焦点*********************是否按下******* --
item android:drawable="@drawable/button_p" android:state_focused="true" android:state_pressed="false"/
item android:drawable="@drawable/button_p" android:state_focused="true" android:state_pressed="true"/
item android:drawable="@drawable/button_p" android:state_focused="false" android:state_pressed="true"/
!-- **************没有任何操作时显示的背景************** --
item android:drawable="@drawable/button_n"/item
/selector
在xml文件中设置button的background属性。
android:background="@drawable/button_bg"
不是屏幕助手,这个是系统的悬浮导航按键,像华为、OPPO、VIVO、小米等手机系统都会自带该功能,下面给出关闭华为EMUI系统(其他品牌手机关闭方法可能会有所差异)悬浮导航的操作流程:
一、打开华为手机设置界面,翻到底部,点击打开“系统”。
二、找到“系统导航方式”,点击进入该项。
三、找到“悬浮导航”这一块,点击“已开启”。
四、进入悬浮导航界面后,点击悬浮导航右边的“开关”即可关闭。
自己绘制圆形的图片,然后在button布局里面用BackgroundDrawable设置为button背景。android中是不带圆形的button的
以小米手机为例,手机上有一个圆的和那个返回键差不多的键是悬浮球,取消方法如下:
操作工具:小米9
操作系统:miui 11.0
1、打开软件,然后点击设置选项;
2、进入设置页面,点击更多设置;
3、然后点击悬浮球;
4、进入悬浮球页面,然后关闭掉打开悬浮球的按钮;
5、关闭成功后,就可以看到悬浮球关掉了。
使用shape,请看下面截图,例子来自于android学习手册,360手机助手中下载,里面有108个例子、源码还有文档。
?xml version="1.0" encoding="utf-8"?
shape
xmlns: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=""
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);
}
}