《代码里的世界》 用文字札记描绘自己 android学习之路   转载请保留出处 by Qiaohttp://blog.csdn.net/qiaoidea/article/details/45115047 【导航】Android更新Ui的几种方法和见解 android更新ui基本常用方法An ...
阅读全文 »

《代码里的世界》

用文字札记描绘自己 android学习之路

  转载请保留出处 by Qiao
http://blog.csdn.net/qiaoidea/article/details/45128303

【导航】
Android更新Ui的几种方法和见解 android更新ui基本常用方法
Android更新Ui进阶精解(一) android ui线程检查机制
Android更新Ui进阶精解(二) android 线程更新UI机制


1.回顾

  前面一篇简单讲了如何快速使用handler更新ui。稍微补充一些:

  1. 更新ui时可以直接使用这种方法,你不须非要再new一个子线程才使用,比如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    viewPostBtn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    viewPostBtn.post(new Runnable() {

    @Override
    public void run() {
    titleView.setText("viewPost——Result");
    }
    });
    }
    });
阅读全文 »

《代码里的世界》

用文字札记描绘自己 android学习之路

  转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45115047

1. 简述

  先贴一个我们刚做Android开发时候最容易遇到的一个错误异常 AndroidRuntimeException“Only the original thread that created a view hierarchy can touch its views”
  具体原因是当我们在对ui做出更改时,Android检查我们当前的操作线程是否为UI线程,若不是即报该异常。(详见 ViewRootImpl类的checkThread方法)。

2. 方案

  那么我们该如何更新Ui呢,这里简要使用和讲述的是Handler。先简述概念:Adroid在运行时会创建一个UiThread的主线程来负责控制UI界面的显示、更新和控件交互。其他线程则通过handler将更新逻辑等消息事件(Message) push到主线程的消息队列(MessageQueue),最后由主线程有序地处理这些消息事件(handleMessage),实现对界面的更新和控制。
  本文主要讲述更新UI的方法和使用技巧,关于更新过程的原理内容请关注后边的 Android更新Ui进阶
  其中,常用的几种方法简单概括有:

  • handler.sendMessage();
  • handler.post();
  • 在activity中可以 runOnUiThread();
  • 在子view中可以 view.post()
阅读全文 »

一. 简单功能

功能 效果 Markdown代码 备注
粗体 粗体 **粗体** 两边加**
斜体 斜体 _斜体_ 两边加_
中划线 中划线 ~~中划线~~ 两边加~~
单行代码 Log.i("Hello World!") `Log.i(“Hello World!”)` 两边加`
插入图片 Image ![Image](http://www.trinea.cn/rss.png) [] 中间为占位符,() 中间为图片链接
链接 Visit Github [Visit Github](http://www.github.com) [] 中间为显示文字,() 中间为链接
阅读全文 »

  使用Markdown写博客已经三个月了,对这个标记语言很是喜欢。现在流行的教程,要么就是太复杂太难以理解,要么就是太简单太肤浅,稍微高级点的用法没有提及。本文的初衷就是用最容易理解的方式,把Markdown入门到高级用法一一介绍给读者。看完之后,你不仅可以开始使用Markdown写东西,在日常使用中也随时可以打开这篇博客参考各种用法。

阅读全文 »

  本文来自作业部落-在线Markdown编辑阅读器。点击查看。供Markdown初学者学习参考。
  另外特别需说明的一点儿是,对于Makdown语法来说,不同编辑器的渲染都不太一样,如若要发布为hexo网页,请以 hexo 为准。

阅读全文 »

##1. 3G、4G

- 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升。
- 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求。

目前主流的3G技术标准有三种:
- WCDMA:全球80%以上的3G网络都是采用此种制式。中国联通运营。186
- CDMA2000:目前日韩及北美使用较多。中国电信运营。 189
- TD-SCDMA:中国自主知识产权的3G通信技术。中国移动运营。 188 

目前主流的4G技术为LTE,但还没有被广泛应用:    
GSM → GPRS → EDGE → WCDMA → HSDPA → HSDPA+ → LTE
阅读全文 »

##1. AlphaAnimation

1
2
3
4
5
6
7
RelativeLayout rl_splash = (RelativeLayout) findViewById(R.id.rl_splash);
//播放动画效果
AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f);
//设置Alpha动画的持续时间
animation.setDuration(2000);
//播放Alpha动画
rl_splash.setAnimation(animation);
阅读全文 »

    深入到ViewGroup内部,了解ViewGroup的工作,同时会阐述更多有关于View的相关知识。以便为以后能灵活的使用自定义空间打更进一步的基础。

##ViewGroup定义
   一个ViewGroup是一个可以包含子View的容器,是布局文件和View容器的基类。在这个类里定义了ViewGroup.LayoutParams类,这个类是布局参数的子类。
  其实ViewGroup也就是View的容器。通过ViewGroup.LayoutParams来指定子View的参数。

  ViewGroup作为一个容器,为了制定这个容器应有的标准所以为其指定了接口

public abstract class ViewGroup extends View implements ViewParent, ViewManager  

  这两个接口这里不研究,如果涉及到的话会带一下。ViewGroup有小4000行代码,下面我们一个模块一个模块分析。

阅读全文 »