[TOC]
android的ui比较多而且是重点,我们就来介绍一下ui组件和控件什么的吧!!
ui控件
- textview还可以在其内部显示图片:
String html = "<img src='ic_launcher'/>";
CharSequence charSequence = Html.fromHtml(html, new ImageGetter() {
// 实现ImageGetter接口的getDrawable()方法
//得到图片资源的Drawable对象,填充给TextView
@Override
public Drawable getDrawable(String source) {
Drawable drawable = getResources().getDrawable(
getResourceId(source));
drawable.setBounds(0, 0,
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
return drawable;
}
}, null);
tv.setText(charSequence);
- editText:继承自Textview,可编辑的text,使用getText.toString()即可得到内容;
- button继承自view:visibility()设置可见性 View.GONE不 View.VISABLE显示,clickable:能否被点击,focusable:能否获得焦点,longClickable:能否长按;
高级版
adpter
menu菜单
onCreateOptionsMenu (Menu menu):创建选项菜单,这个函数只会在菜单第一次显示时调用,
onPrepareOptionsMenu (Menu menu):更新改变选项菜单的内容,这个函数会在菜单每次显示时调用。
重写onOptionsItemSelected(MenuItem item)这个方法就可以做响应操作了;
Dialog对话框
对话框是模态异步的,弹出对话框与用户交互时后台线程还是执行的,
AlertDialog:警告对话框
ProgressDialog:进度条对话框
DatePickerDialog:日期对话框
TimePickerDialog:时间对话框
alterDialog直接继承自dialog,其他几个均是继承aAlterDialog.Builder创建。使用Builder对象,可以设置AlterDialog的各种属性,最后通过Builder.create()就可以得到AlterDialog对象。一般使用Builder.show()方法显示对话框
内置三个按钮:setPositiveButton,setNegativeButton,setNeutralButton“`java
AlertDialog.Builder builder =
new AlertDialog.Builder(MainActivity.this);
builder.setTitle(“提示”);
builder.setMessage(“这是一个简单对话框”);
builder.setIcon(R.drawable.ic_launcher);
builder.setCancelable(false);
builder.setPositiveButton(“确定”,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
}
});
builder.create().show();
- 展示列表:Builder.setItems(CharSequence[] items,DialogInterface.OnClickListener listener)方法进行设置,它需要传递一个CharSequenece类型的数组,以绑定列表数据Builder.setItems(CharSequence[] items,DialogInterface.OnClickListener listener)方法进行设置,它需要传递一个CharSequenece类型的数组,以绑定列表数据
- 单选列表:AlterDialog还可以使用一种单选的列表样式,使用 Builder.setSingleChoiceItems (CharSequenece[] items,int checkedItem,DialogInterface.OnClickListener listener)方法,这个方法具有多项重载,主要是为了应对不同的数据源。其中,items为列表项数组,checkedItem为初始选项,listener 为点击响应事件
- 复选框:上面类似的final String[] items = new String[] { "读书",
"听音乐", "爬山" };
AlertDialog.Builder builder =
new AlertDialog.Builder(MainActivity.this);
builder.setTitle("请选择你的兴趣、爱好");builder.setMultiChoiceItems(items, new boolean[]
{ true, false, true },new DialogInterface
.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {}
- 自定义对话框
AlertDialog alertDialog = null;
private void showSelfDialog() {
AlertDialog.Builder builder =
new AlertDialog.Builder(MainActivity.this);
View view = LayoutInflater.from(MainActivity.this).inflate(
R.layout.dialog_signin, null);
Button btn = (Button) view.findViewById(R.id.btnCustom);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
Toast.makeText(MainActivity.this, "登录验证",
Toast.LENGTH_SHORT).show();
}
});
builder.setView(view);
alertDialog = builder.show();
“`
fragment
Fragment必须被写成可重用的模块,因为Fragment拥有自己的布局和自己的生命周期,可以接收、处理用户事件;
目的是为了解决不同屏幕分辩率的动态和灵活的UI设计。可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全由不同的Fragment组成
Fragment不能独立存在,它必须嵌入到Activity中,而且Fragment的生命周期直接受所在的Activity的影响
栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键
- 使用:FragmentManager fragmentManager
= getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();获得事务管理 - FragmentTransaction.add()往Activity中添加一个Fragment。
- relpace()替换fragment
- hide()隐藏
- show()显示
- detach()将view从ui中删除
- commit()提交一个事务,
> 静态使用fragment:把他当成普通控件写入布局文件中,
发表回复