android ui详细总结

[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,其他几个均是继承a

AlterDialog.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:把他当成普通控件写入布局文件中,

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注