Button(按钮)继承自TextView,在Android开发中,Button是常用的控件,用起来也很简单,你可以在界面xml描述文档中定义,也可以在程序中创建后加入到界面中,其效果都是一样的。不过最好是在xml文档中定义,因为一旦界面要改变是话,直接修改一下xml就行了,不用修改Java程序,并且在xml中定义层次分明,一目了然。
XML属性 | 方法 | 说明 |
android:clickable | setClickable(boolean clickable) | 设置是否允许点击。 clickable=true:允许点击 clickable=false:禁止点击 |
android:background | setBackgroundResource(int resid) | 通过资源文件设置背景色。 resid:资源xml文件ID 按钮默认背景为android.R.drawable.btn_default |
android:text | setText(CharSequence text) | 设置文字 |
android:textColor | setTextColor(int color) | 设置文字颜色 |
android:onClick | setOnClickListener(OnClickListener l) | 设置点击事件 |
.
实例:
1、设置背景图
XML布局
<?xml version="1.0" encoding="utf-8"?>
<Button android:id="@+id/button"
android:background="@drawable/ic_launcher"/>
Java代码
//方法一:
button.setBackground(ContextCompat.getDrawable(this, R.drawable.ic_launcher));
//方法二:
button.setBackgroundResource(R.drawable.ic_launcher);
.
2、设置背景色
XML布局
<?xml version="1.0" encoding="utf-8"?>
<Button android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮"
android:background="#ff0000"/>
Java代码
//方法一:
button.setBackgroundColor(getResources().getColor(R.color.colorAccent));
//方法二:
button.setBackgroundColor(Color.parseColor("#F8F8FF"));
.
3. 设置背景样式
我们可以使用drawable中的xml文件来改变按钮的样式
shape样式:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="6dp" />
<solid android:color="#ffffff" />
<padding android:bottom="10dp" android:left="20dp" android:right="20dp" android:top="10dp" />
<stroke android:width="3dp" android:color="#99CCFF" />
</shape>
xml布局:
<Button android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮"
android:background="@drawable/btn_bg"/>
Java代码:
//方法一:
button.setBackground(ContextCompat.getDrawable(this, R.drawable.btn_bg));
//方法二:
button.setBackgroundResource(R.drawable.btn_bg);
.
4、点击事件
① 实现OnClickListener接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
Button btn = (Button) findViewById(R.id.btn);
//绑定监听
btn.setOnClickListener(this);
}
//重写onClick()方法
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
}
}
② 匿名内部类
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
Button btn = (Button) findViewById(R.id.btn);
//使用匿名内部类
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
③ 定义内部类
XML布局:
<Button android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件" />
Java代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
Button btn = (Button) findViewById(R.id.btn);
}
public void click(View v) {
Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
}
//Toast.LENGTH_SHORT 是显示时长
}
Comments | NOTHING