android 按钮用法,Android Button基本使用

Button是Android中一个非常简单的控件,在我们平时的项目中,可以说是非常的常见,使用率也是相当高。本身对于这个控件的用法也是很好掌握的,下面我们就从几个方面介绍一下它的用法,以及一些自定义Button的使用。

c90ea386add8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

按钮效果图

1. 设置背景

设置背景图

xml布局:

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="按钮"

android:background="@drawable/ic_launcher"/>

Java代码:

//方法一:

button.setBackground(ContextCompat.getDrawable(this, R.drawable.ic_launcher));

//方法二:

button.setBackgroundResource(R.drawable.ic_launcher);

设置背景色

xml布局:

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"));

2. 设置样式

设置背景样式

shape样式:

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

android:shape="rectangle">

xml布局:

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);

3. 点击事件

① 实现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();

}

});

}

}

③ 定义内部类

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(listener);

}

class listener implements OnClickListener {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();

}

}

}

④ 布局添加onClick的属性

xml布局:

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();

}

}

4. 常见问题

文字显示不全

举个栗子:

android:layout_width="40dp"

android:layout_height="30dp"

android:textSize="11sp"

android:text="按钮" />

如上所示,Button在设置字体时,如果控件大小限制,文字可能会出现被截取,无法完全展示的情况。出现这种情况有下面几种解决方案可供参考:

① 修改字体大小,但有时候还是无法达到预期效果;

② 不用Button控件,改用Textview控件;

③ 设置padding为0,取消Button控件自身的默认边距值;

xml布局:

android:layout_width="40dp"

android:layout_height="30dp"

android:padding="0dp"

android:textSize="11sp"

android:text="按钮" />

Java代码:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

lp.width = 40;

lp.height = 30;

Button button = new Button(this);

button.setTextSize(11);

button.setPadding(0,0,0,0);

button.setLayoutParams(lp);

参考

========== 相关推荐 ==========

============================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值