android 初学者 基础知识点

我是一个android初学者,这是我在学习后的一些整理,希望对初学者们有一定的帮助,自己也正好留作纪念。漫漫求知路,大家一起加油!



一.五大页面布局:

1.线性布局:所有控件垂直或水平摆放
2.相对布局:控件可相对父控件或同级别控件摆放位置
3.帧布局  :前景和背景
4.绝对布局:相对于坐标点的布局
5.表格布局:每一行可放多少控件 
二.自定义UI控件
1.自定义TextView
2.自定义Dialog
3.自定义组合控件
4.自定义SeekBar
5.更多

三:第三方框架


1.SwipeRefreshLayout 下拉刷新(需要下载support v4 19.1)


    A.xml中<android.support.v4.widget.SwipeRefreshLayout
          和普通控件一样设置属性  >


       在里面可以放置任何一个控件,例如ListView,gridview等。


     </android.support.v4.widget.SwipeRefreshLayout>
   
    B.findViewById对刷新控件进行实例化 
    C.setColorScheme(最多4中颜色),设置刷新的颜色样式
    D.设置OnRefreshListener监听事件,在事件中用handler延时发布
    E.在监听中设置数据的更新等,然后setRefreshing(false)停止刷新    
     
2.SlidingMenu  滑动式菜单栏
   A.导入包SlidingMenu_library(需在同一路经)//需要删除原工程的supportV4.jar包
   B.在Main实例化SlidingMenu对象sm
   C.设置滑动模式(例:SlidingMenu.LEFT)
     设置监听滑动触摸范围
     设置阴影的颜色 ID(需要用dimen)
     设置阴影的宽度 ID(需要用dimen) 
     设置menu全部打开时主界面与屏幕边框的距离
     设置淡入淡出(true)
     设置淡入淡出的值
     绑定acticity并设置绑定模式
     设置Mneu的layout(setMenu)
     通过getMenu()获取Menu的Layout转换的View


四.四大组件
  1.activity:
         可通过设置action达到进程间通信
  2.ContentProvider(内容提供者)
     A.通过getContentResolver()实例化ContentResolver
     B.传入源码写好的对应的Uri
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
     C.调用内容解析者的query(查询)方法传入URI返回Cursor
     D.使用Cursor获取想要的数据contacts.moveToNext()判断
               contacts.getString(contacts.getColumnIndex("contact_id")
   3.BroadCastReceiver(广播接受者)  
      注册方式:(1)注册表(2)java文件中
     A.在JAVA中注册广播,传入一个广播接受者对象和一个IntentFilter(意图过滤器)
        IntentFilter中添加需要的action(一般是系统写好的)
     B.实例化BroadCastReceiver重写onReceive(Context ,Intent)  方法
     C.通过Intent对象传入key获取广播时发送的值
     D.用完后记得注销广播 
   4.Service(服务)
     (一) 服务分为本地服务和远程服务(都需在清单文件(android Manifest.xml)注册)
     (二) 服务开启的两种方式:startService(后台运行)和bindService(与acticity进行交互)
     (三) 需要写一个类继承Service类(重写需要的方法)
  (1)本地(bind)
           A.新建类继承Service重写onBind(intent:为Activity跳转时传过来的)方法,
             并返回Ibinder对象(默认返回为空)
           B.写一个类继承Ibinder接口重写里面的方法  
           C.用bindService(intent对象 ,ServiceContent对象,操作选项绑定)绑定服务
           D.在activity写一个内部类继承ServiceContent接口,重写两个方法
             (a).onServiceConnected(ComponentName, IBinder )连接后调用
                   这里的IBinder 就是之前Service返回的IBinder
             (b).onServiceDisconnected(ComponentName)异常中断后调用
  (2)远程(bind)
          A(提供服务).
            (a)新建一XX接口将其后缀转换成aidl
            (b)在Service中写内部类YY继承XX.Stub 重写xx接口的方法
            (c)xml注册时为service添加一个action 
          B(交互服务).
            (a).在一个新工程中建acticity
            (b).新建和工程1同名的包,将aidl复制到包里 
            (c).在activity中新建Intent传入之前工程1的Service的action 
            (d).bindService()绑定服务 
            (e).绑定服务时传入的服务连接对象返回的 Ibinder就是XX.Stub对象
            (f).调用xx.Stub.asInterface(IBinder)将其转换成aidl接口类型的对象
            (g).调用对象的方法进行远程交互
          
五.四大存储方式
        (1)sharedPerferences(轻量级存储,以键值存入 保存为xml)  
           A.getSharedPreferences("text",MODE_WORLD_WRITEABLE)实例化一个对象,第一个参数不填默认为类名作为文件名
           B.通过getEdit()获取编辑器.
           C.通过交数据将其保存在对应xml中 
           
           D.取出数据
               通过sharedPerferences对象的get方法可取出数据
        (2)File(文件存储)
            A. new File(路径+文件扩展名)    
            B. file.exists()判断文件是否存在,不存在则createNewFile()        
            C.相对于app的写入写出(字符流和字节流)
               新建流传入文件(如果是缓冲流写入的话的话flush才是真正的写进文件)
               根据流进行read(流对象)write(流对象)
        (3)SQLite(数据库)
            A.新建类xx继承SQLiteOpenHelper,写一个带4参的构造(context,数据库名,光标工厂,版本号).
            B.重写两个方法
                  onCreate(SQLiteDatabase db)创建时调用(进行一些表的创建) 
                  onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)升级时调用
            C.写一个功能类实现数据库的增删查改(execSQL/rawQuery) 
                在此类中需要建xx类的对象,通过xx对象获取可写/可读的db,进行操作 
         (4)Internet(网络存储)
             A.通过URL对象.openConnection()发送请求将返回对象强转成HttpURLConnection类型
             B.设置超时时间setConnectTimeout(1000)
             C.设置请求方式setRequestMethod("get")
             D.根据响应码判断是否请求成功(200成功,404网页不存在,503无响应)
             E.根据HttpURLConnection对象.getInputStream得到返回的输入流
             F.写方法把输入流变成输出流,并以String(输出流,编码类型(utf-8)),转成String
六.AQuery 
      导入jar包 
      AQuery .id(R.id.button).text("Click Me").clicked(this, "buttonClicked");(简化控件,监听)
      AQuery .ajax()网络访问交互 
七.JSon
      String str="{\"name\":\"Iyangc\",\"address\":{\"province\":\"四川\",\"city\":\"成都\"}}";(JSONObject格式)
      新建JSONObject xx=new JSONObject(str)
      获取数据
             xx.getString(键值)
八.Gson
     Gson.toJson(bean)
     Gson.formJson()
     数据集合时 Type type = new  TypeToken<List<Ure>>(){}.getType();
                 List<Ure> l=Gson.fromJson(json格式的字符串,type);
九.XML(pull)解析
        A.获取一个xml文件将其打开为输入流inputStream
        B.Xml.newPullParser()新建XmlPullParser对象
        C.解析对象.setInput(输入流,"utf-8(编码格式)"),设置需要解析的输入流
        D.对象.getEventType!=XmlPullParser.END_DOCUMENT判断文件是否读到结尾
        E.getName()获取节点名字
        F.getnexttext()获取节点内的内容
        H.完成一次后移动到下一节点继续判断
十.Socket(套接字)
          (端口号相当于一个应用的标识码)
     (1) 服务器(Srevice)
           A.new ServerSocket(指定端口号)(建服务器套接字)..对象.accept()阻塞式接收
           B.通过getInputStream().获取输入流(客户端传过来的)
           C.通过getOutputStream().获取本服务器的输出流,通过wrate(),将内容传到客户端
           D.不用后可关闭套接字close().这时无法进行访问
     (2) 客户端(Client)
           A.new Socket("Ip",端口号)实例化对象
           B.通过对象get输入/出流.或写或读文件

你可能感兴趣的:(android,Android基础,android初学者)