欢迎大家来到IT世界,在知识的湖畔探索吧!
今天介绍下Android开发中常用的按钮应用,请耐心的看完,有问题的可以评论或者发私信,谢谢
Button是Android中一个非常简单的控件,在我们平时的项目中,可以说是非常的常见,使用率也是相当高。本身对于这个控件的用法也是很好掌握的,下面我们就从几个方面介绍一下它的用法,以及一些自定义Button的使用。
1. 设置背景
设置背景图
xml布局:
<Button android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮"
android:background="@drawable/ic_launcher"
欢迎大家来到IT世界,在知识的湖畔探索吧!
Java代码:
欢迎大家来到IT世界,在知识的湖畔探索吧!//方法一:
button.setBackground(ContextCompat.getDrawable(this, R.drawable.ic_launcher));
//方法二:
button.setBackgroundResource(R.drawable.ic_launcher);
设置背景色
xml布局
<Button android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮"
android:background="#ff0000"/>
Java代码:
欢迎大家来到IT世界,在知识的湖畔探索吧!//方法一:
button.setBackgroundColor(getResources().getColor(R.color.colorAccent));
//方法二:
button.setBackgroundColor(Color.parseColor("#F8F8FF"));
2. 设置样式
- 设置背景样式
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);
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布局:
<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();
}
}
4. 常见问题
文字显示不全
举个例子:
<Button android:id="@+id/button"
android:layout_width="40dp"
android:layout_height="30dp"
android:textSize="11sp"
android:text="按钮" />
如上所示,Button在设置字体时,如果控件大小限制,文字可能会出现被截取,无法完全展示的情况。出现这种情况有下面几种解决方案可供参考:
① 修改字体大小,但有时候还是无法达到预期效果;
② 不用Button控件,改用Textview控件;
③ 设置padding为0,取消Button控件自身的默认边距值;
xml布局:
<Button android:id="@+id/button"
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);
有问题的可以私信,谢谢
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/17809.html