android.view.View类呈现了最基本的UI构造块,一个View占据屏幕上的一个方形区域,并且负责绘制和事件处理
View是widgets的基类,常用来创建交互式的图形用户界面(GUI)
Android中的空间经常在布局文件中进行描述,在Java源代码中通过findViewById()函数根据ID获取控件的句柄,并且转换成实际的类型来使用
下面简单介绍下几种常用控件的使用
<Button>
xml:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginLeft="16dp"
android:layout_marginTop="49dp"
android:layout_toRightOf="@+id/textView1"
android:text="Go" />
.java
Button bt = (Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Log.v(TAG, "--onClick--");
Intent i = new Intent();
i.setClass(MainActivity.this, MainActivity1.class);
startActivityForResult(i, iRequestCode);
}
});
这里在定义了一个Button,在点击时,跳转到另一个界面
<ToggleButton>
.xml
<ToggleButton
android:id="@+id/tb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_marginLeft="38dp"
android:layout_toRightOf="@+id/button1"
android:textOn="On"
android:textOff="Off"
android:onClick="onFunc"/>
android:textOn --Button开时显示的文字
android:textOff --Button关时显示的文字
android:onClick --指定点击时触发的函数,函数的参数必须为View
.java
public void onFunc(View view)
{
TextView txt = (TextView)findViewById(R.id.textView1);
if( ( (ToggleButton)view).isChecked())
{
txt.setText("onFunc_On");
}
else
{
txt.setText("onFunc_Off");
}
}
还有一种方法,就是调用ToggleButton的setOnCheckedChangeListener接口,具体使用可以参考帮助文档,比如:
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// The toggle is enabled }
else {
// The toggle is disabled }
}});
<ImageView>
.xml
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/button1"
android:layout_marginRight="15dp"
android:layout_marginTop="137dp"
android:maxWidth="600dip"
android:maxHeight="600dip"
android:padding="10dip"/>
maxWidth和maxHeight指定图像的最大宽度和高度,在缩放操作时会使用到
padding为图像留出一定宽度的边框
.javaImageView iv =(ImageView)findViewById(R.id.imageView1);
iv.setImageResource(R.drawable.ic_launcher);
几种设置图片的方法:
void setImageResource (int resId) // 设置图像源的资源ID
void setImageURI(Uri uri) // 设置图像源的URI
void setImageBitmap(Bitmap bm) // 设置一个Bitmap位图为图像源
<ImageButton>
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/tb1"
android:src="@android:drawable/ic_menu_edit" />
ImageButton继承自ImageView,扩展了ImageView,结合了图像和按钮的功能,具体可以参考其提供的接口
ImageButton im = (ImageButton)findViewById(R.id.im);
im.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
TextView txt = (TextView)findViewById(R.id.textView1);
txt.setText("Hei Hei ImageButton");
}
});