Android笔记——按钮(Button)
一、常用到的属性:
android:background="@drawable/文件名":调用文件中的背景样式
android:onClick="方法":设置点击事件
二、书写Button控件的背景样式:
(1)书写Button布局样式
<Button android:layout_width="宽度" android:layout_height="高度" android:text="文本" android:background="@drawable/文件名" android:textColor="字体颜色" 各种样式... />
(2)创建drawable的资源文件
(3)书写样式
1.Root element:shape
1)android:shape=[形状]
形状有:rectangle | oval | line| ring
shape的形状,默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)
2)solid指定内部填充色
3)corners定义圆角
其中,radius定义四个角的圆角半径,也可以分别设置四个角的圆角半径:
android:topLeftRadius:左上角的圆角半径
android:topRightRadius:右上角的圆角半径
android:bottomLeftRadius:左下角的圆角半径
android:bottomRightRadius:右下角的圆角半径
4)stroke描边属性:
android:dashWidth:虚线的宽度,0dp代表实线
android:dashGap:虚线的间距
2.Root element:selector
1)selector:状态选择器
2)item里面的属性值:
android:state_pressed:是否按压
android:state_focused:是否获取焦点
android:state_selected:是否被选中
android:state_checked:设置勾选是否选中,主要用于checkBox和RadioButton
android:state_checkable:设置勾选是否可用状态
android:state_enabled:设置触摸或点击是否可用状态
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="15dp"> <Button android:id="@+id/btn01" android:layout_width="match_parent" android:layout_height="40dp" android:text="按钮1" android:background="#f15a22" android:textColor="#f6f5ec"/> <Button android:id="@+id/btn02" android:layout_width="match_parent" android:layout_height="40dp" android:text="按钮2" android:background="@drawable/bg_btn02" android:textColor="#f6f5ec" android:layout_below="@+id/btn01" android:layout_marginTop="10dp"/> <Button android:id="@+id/btn03" android:layout_width="match_parent" android:layout_height="40dp" android:text="按钮2" android:background="@drawable/bg_btn03" android:textColor="#00a6ac" android:layout_below="@+id/btn02" android:layout_marginTop="10dp"/> <Button android:id="@+id/btn04" android:layout_width="match_parent" android:layout_height="40dp" android:text="按钮2" android:background="@drawable/bg_btn04" android:textColor="#ffffff" android:onClick="showToast" android:layout_below="@+id/btn03" android:layout_marginTop="10dp"/> </RelativeLayout> <!-- android:background="@drawable/文件名":调用文件中的背景样式 android:onClick="方法":设置点击事件 -->
添加圆角:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#f15a22"/> <corners android:radius="20dp"/> </shape>
添加描边:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:width="5dp" android:color="#00a6ac" android:dashWidth="2dp" android:dashGap="2dp"/> </shape>
添加按压样式:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> <solid android:color="#005831"/> <corners android:radius="20dp"/> </shape> </item> <item android:state_pressed="false"> <shape> <solid android:color="#412f1f"/> </shape> </item> </selector>
(4)添加点击事件
1.第一种方法:
(1)在Button控件布局里面书写:
android:onClick="方法名"
(2)在Activity文件创建方法:
public void 方法名(View view){
具体方法;
}
2.第二种方法:
直接在Activity文件给控件添加事件:
获取到的按钮.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
具体方法;
}
});
package com.example.lqh.firstproctect; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button mBtn3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBtn3 = (Button) findViewById(R.id.btn03); mBtn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "btn3被点击了", Toast.LENGTH_SHORT).show(); } }); } public void showToast(View view){ Toast.makeText(this,"btn4被点击了",Toast.LENGTH_SHORT).show(); } }