Android2.1--UI基本控件<2>--Button
Button--按钮
点击按钮,会触发事件,如果要对这个事件做出相应的处理,需要对这个按钮设置点击按钮的监听事件setOnClickListener
当点击按钮时,系统会自动调用setOnClickListener方法,去执行按钮被按下后所要执行的动作
button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click // 点击按键后要执行的动作 } });
在activity中可以设置Button的属性
Button.setText--在按钮上显示文字
Button.setTextSize--设置字体大小
Button.setColor--按钮颜色
Button.setWdith--宽度
Button.setHeight--长度
Button.getText--按钮上的文字
一个简单的例子
activity TestIntent 跳转到另一个activity CountList,其中通过一个Bundle的实例在两个activity之间传递数据
TestIntent 代码如下
package com.android.testinent; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class TestIntent extends Activity { private Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_intent); button = (Button)this.findViewById(R.id.button1); button.setHeight(30); button.setWidth(80); button.setText("click"); button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Bundle bundle = new Bundle(); String [] nameArr = {"my", "first", "bundle"}; bundle.putStringArray("NAMEARR",nameArr ); // NAMEAR--数据的键 个人理解为查找数据的索引 // nameArr--NAMEAR这个键对应的值 // 在activity CountList中通过这个NAMEAR键去索引获得它锁对应的值 Intent intent = new Intent(TestIntent.this,CountList.class ); intent.putExtras(bundle);//附带额外的数据,将数据放进intent中 startActivity(intent); } }); // Bundle类用于携带数据,他类似于Map,用于key-value名值对应形式的值, // 他提供了各种常用的类型put***()/get***()方法用于向bundle对象中放入数据与取出数据 } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_test_intent, menu); return true; } }
CountList
package com.android.testinent; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class CountList extends Activity { private TextView showtext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); showtext = (TextView)this.findViewById(R.id.show); Bundle bundle = this.getIntent().getExtras(); // 从intent中获取所带的额外数据 就是前一个activity添加进去的bundle String [] arrayname = bundle.getStringArray("NAMEARR"); showtext.setText(arrayname[0]+" "+arrayname[1]+" "+arrayname[2]); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_test_intent, menu); return true; } }
可以在按钮上添加图片
在activity的Layout中对按钮进行设计
例如在工程的res/layout/drawable/button1有个图片
在layout中的页面布局.xml中可以将button1这个图片添加在按钮上,但是这个时候按钮要声明为ImageButton,而不是Button
<ImageButton android:id="@+id/ImageButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/button1">
其中android:src="@drawable/button1"是在res/layout/drawable中引用button1这个图片资源
在activity中定义按钮时同样定义为ImageButton,监听方法与Button一样
除了在xml中声明意外,还可以在activity中引用按钮的图片资源
ImageButton.setImageDrawable(getResources().getDrawable(R.drawable.button1));
//Button或者ImageButton的背景设为透明或者半透明
//对于 alpha值,表示颜色的透明度范围从0~255
//图片或北京的颜色和不透明度 (alpha) 值以十六进制表示法表示。表达式顺序是“aabbggrr”,
//其中“aa=alpha”(00 到 ff) 00 表示完全透明,ff 表示完全不透明;“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。
//例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000
//设置透明度可用View.getBackground().setAlpha(n);//n[0~255]透明度值