您的位置:首页 > 移动开发 > Android开发

Android常用控件及其属性

2016-05-11 18:04 591 查看
match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小

wrap_content表示让当前控件的大小能够刚好包含住里面的内容也就是由控件内容决定当前控件的大小

TextView

TextView中的文字默认是居左上角对齐的

android:gravity可以指定文字的对齐方式,可选值有top、bottom、left、right、center等

可以用“|”来同时指定多个值

“center”效果等同于“center_vertical|center_horizontal,表示文字在垂直和水平方向都居中对齐

android:textSize属性可以指定文字的大小 android:textColor属性可以指定文字的颜色 指定文字大小一般用sp

Button

为Button的点击事件注册一个监听器

public class MainActivity extends Activity {

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

}
});
}
}


public class MainActivity extends Activity implements OnClickListener {

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
break;
default:
break;
}
}

}


EditText

android:hint=""设置提示性文字

android:maxLines="2"可以指定EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸

结合使用EditText和Button

public class MainActivity extends Activity implements OnClickListener {

private Button button;

private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.et);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
String inputText = editText.getText().toString();
Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}

}


ImageView

android:src="@drawable/ic_launcher"


设置图片

ImageView的setImageResource()方法可以改变显示的图片

public class MainActivity extends Activity implements OnClickListener {

private Button button;

private EditText editText;

private ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.et);
imageView = (ImageView) findViewById(R.id.iv);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
imageView.setImageResource(R.drawable.logo);
//			String inputText = editText.getText().toString();
//			Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}

}


ProgressBar

ProgressBar用于在界面上显示一个进度条

Android控件的可见属性

所有的Android的控件都具有这个属性,可以通过android:visibility进行指定

可选值有三种,visible、invisible和gone

visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的

invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了

gone则表示控件不仅不可见,而且不再占用任何屏幕空间

我们也可以通过代码来设置控件的可见性

使用setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE和View.GONE三种值

public class MainActivity extends Activity implements OnClickListener {

private Button button;

private EditText editText;

private ImageView imageView;

private ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.et);
imageView = (ImageView) findViewById(R.id.iv);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
} else {
progressBar.setVisibility(View.GONE);
}
//			imageView.setImageResource(R.drawable.logo);
//			String inputText = editText.getText().toString();
//			Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}

}


另外,我们还可以给ProgressBar指定不同的样式

刚刚是圆形进度条,通过style属性可以将它指定成水平进度条

style="?android:attr/progressBarStyleHorizontal"
android:max="100"


动态地更改进度条的进度

int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);


AlertDialog

AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽其他控件的交互能力

因此一般AlertDialog都是用于提示一些非常重要的内容或者警告信息

比如为了防止用户误删内容,在删除前弹出一个确认对话框

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is Dialog");
dialog.setMessage("Something important.");
dialog.setCancelable(false);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();


首先通过AlertDialog.Builder创建出一个AlertDialog的实例,然后可以为这个对话框设置标题、内容、可否取消等属性
接下来调用setPositiveButton()方法为对话框设置确定按钮的点击事件

调用setNegativeButton()方法设置取消按钮的点击事件

最后调用show()方法将对话框显示出来

ProgressDialog

ProgressDialog和AlertDialog有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力

不同的是,ProgressDialog会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时,让用户耐心地等待

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();


注意如果在setCancelable()中传入了false,表示ProgressDialog是不能通过Back键取消掉的,这时一定要在代码中做好控制

当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: