龙空技术网

Android新手教学-button(详解)基本使用

Android编程 107

前言:

当前咱们对“android 开关按钮样式”大约比较看重,小伙伴们都需要了解一些“android 开关按钮样式”的相关资讯。那么小编也在网摘上收集了一些关于“android 开关按钮样式””的相关文章,希望朋友们能喜欢,同学们快快来了解一下吧!

今天介绍下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"

Java代码:

//方法一: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代码:

//方法一:button.setBackgroundColor(getResources().getColor(R.color.colorAccent));//方法二:button.setBackgroundColor(Color.parseColor("#F8F8FF"));
2. 设置样式设置背景样式

shape样式:

<?xml version="1.0" encoding="utf-8"?><shape    xmlns: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);

有问题的可以私信,谢谢

标签: #android 开关按钮样式