<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[showdy的博客]]></title><description><![CDATA[记录android学习历程]]></description><link>https://blog.youkuaiyun.com/showdy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; showdy]]></copyright><item><title><![CDATA[关于EditText的一些用法]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/62229261</link><guid>https://blog.youkuaiyun.com/showdy/article/details/62229261</guid><author>showdy</author><pubDate>Wed, 15 Mar 2017 16:36:11 +0800</pubDate><description><![CDATA[/** 
 * Created by showdy on 2017/3/15. 
 */public class PwdActivity extends BaseActivity {private EditText mEtPwd;@Override
public int getLayoutResId() {
    return R.layout.activity_pwd;
}@Override
p]]></description><category></category></item><item><title><![CDATA[自定义密码输入EditTextLayout]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/62226770</link><guid>https://blog.youkuaiyun.com/showdy/article/details/62226770</guid><author>showdy</author><pubDate>Wed, 15 Mar 2017 15:36:35 +0800</pubDate><description><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:layout_w]]></description><category></category></item><item><title><![CDATA[LocalBroadcastManager源码分析]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/61914710</link><guid>https://blog.youkuaiyun.com/showdy/article/details/61914710</guid><author>showdy</author><pubDate>Mon, 13 Mar 2017 11:06:50 +0800</pubDate><description><![CDATA[LocalBroadcastManager优势:Helper to register for and send broadcasts of Intents to local objects within your process.  This has a number of advantages over sending global broadcasts with {@link android.c]]></description><category></category></item><item><title><![CDATA[Java并发之阻塞队列]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/61191355</link><guid>https://blog.youkuaiyun.com/showdy/article/details/61191355</guid><author>showdy</author><pubDate>Fri, 10 Mar 2017 09:16:00 +0800</pubDate><description><![CDATA[队列队列是先进先出（FIFO）的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端（称为rear）进行插入操作，在前端（称为front）进行删除操作。队列的操作方式和堆栈类似，唯一的区别在于队列只允许新数据在后端进行添加。
  操作
  抛出异常
  有返回值  Insert
  add(e)
  offer(e)
  Remove
  remove()
  poll()
  Exami]]></description><category></category></item><item><title><![CDATA[Java多线程之线程中断]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/61191323</link><guid>https://blog.youkuaiyun.com/showdy/article/details/61191323</guid><author>showdy</author><pubDate>Fri, 10 Mar 2017 09:13:06 +0800</pubDate><description><![CDATA[取消任务的方式Java中没有提供任何机制来安全地终止线程,但是提供了中断(Interruption)协作机制,能够使一个线程终止另一个线程的当前工作. 一般取消或停止某个任务,很少采用立即停止,因为立即停止会使得共享数据结构出于不一致的状态.这也是Thread.stop(),Thread.suspend()以及Thread.resume()不安全的原因而废弃.Java中有三种方式可以终止当前运行的线]]></description><category></category></item><item><title><![CDATA[Java多线程之内存可见性]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/60572124</link><guid>https://blog.youkuaiyun.com/showdy/article/details/60572124</guid><author>showdy</author><pubDate>Mon, 06 Mar 2017 10:48:57 +0800</pubDate><description><![CDATA[可见性
可见性: 一个线程对共享变量值的修改,能够及时地被其他线程看到.
共享变量: 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量.
Java 内存模型(JMM)Java内存模型(Java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取出变量这样的底层细节.
所有变量都存储在主内存中]]></description><category></category></item><item><title><![CDATA[Java并发之同步工具类]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/59117375</link><guid>https://blog.youkuaiyun.com/showdy/article/details/59117375</guid><author>showdy</author><pubDate>Wed, 01 Mar 2017 18:51:15 +0800</pubDate><description><![CDATA[同步工具类
同步工具类可以是任何一个对象,只要他根据自身的状态来协调线程的控制流.阻塞队列可以作为同步工具类,其他类型的同步工具类有: 信号量(semaphore),栅栏(Barrier),闭锁(Latch).
所有的同步工具类都有一些特定的结构化属性,封装了一些状态,这些状态决定执行同步工具类的线程是继续还是等待.
闭锁(CountDownLatch)CountDownLatch 方法解析Coun]]></description><category></category></item><item><title><![CDATA[Activity生命周期及任务栈]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/54911239</link><guid>https://blog.youkuaiyun.com/showdy/article/details/54911239</guid><author>showdy</author><pubDate>Tue, 07 Feb 2017 16:13:34 +0800</pubDate><description><![CDATA[Activity的生命周期 
* Activity的创建和销毁 
    * onCreate(): 执行Activity某些基本设置的一些代码,比如声明用户界面(xml文件),定义成员变量,配置某些UI等等,oncreate一般是必须要实现的.* **`onDestroy()`**:一般不需要实现,因为本地类引用与Activity一同销毁，并且您的Activity应在 onPause() 和 on]]></description><category></category></item><item><title><![CDATA[浅谈BitmapFactory.Options]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/54378637</link><guid>https://blog.youkuaiyun.com/showdy/article/details/54378637</guid><author>showdy</author><pubDate>Thu, 12 Jan 2017 15:45:11 +0800</pubDate><description><![CDATA[BitmapFactory.optionsBitmapFactory.Options类是BitmapFactory对图片进行解码时使用的一个配置参数类，其中定义了一系列的public成员变量，每个成员变量代表一个配置参数。图片解码建议配置(inPreferredConfig)
参数inpreferredconfig表示图片解码时使用的颜色模式，也就是图片中每个像素颜色的表示方式
图片颜色:计算机表示]]></description><category></category></item><item><title><![CDATA[TabLayout之自定义样式]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53995501</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53995501</guid><author>showdy</author><pubDate>Tue, 03 Jan 2017 16:18:25 +0800</pubDate><description><![CDATA[TabLayout的默认样式:
    app:theme="@style/Widget.Design.TabLayout"从系统定义的该样式继续深入:
    <style name="Widget.Design.TabLayout" parent="Base.Widget.Design.TabLayout">
        <item name="tabGravity">fill</item>]]></description><category></category></item><item><title><![CDATA[Toolbar用法详解:]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53945239</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53945239</guid><author>showdy</author><pubDate>Fri, 30 Dec 2016 17:31:43 +0800</pubDate><description><![CDATA[Toolbar用法详解:Toolbar的组成:Toolbar supports a more focused feature set than ActionBar. From start to end, a toolbar may contain a combination of the following optional elements:
A navigation button. This m]]></description><category></category></item><item><title><![CDATA[View的绘制流程]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53671877</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53671877</guid><author>showdy</author><pubDate>Thu, 15 Dec 2016 16:19:48 +0800</pubDate><description><![CDATA[自定义View之测量篇初识ViewRoot和ViewRootImpl我们知道,Activity界面加载显示的流程具体如下图,其中android.R.id.content就是View布局,这也就说明Activity中setContentView()而不叫setView()了,当然也可以通过ViewGroup content= (ViewGroup)findViewById(android.R.id.c]]></description><category></category></item><item><title><![CDATA[View的滑动方式及冲突处理]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53642965</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53642965</guid><author>showdy</author><pubDate>Wed, 14 Dec 2016 17:45:53 +0800</pubDate><description><![CDATA[实现滑动的方式:实现view的滑动,本质上说都是改变view的坐标,不管是哪种方式实现滑动,实现的基本思想是一致的,当触摸View时,系统记下当前触摸点的坐标,当手指移动时,系统记下移动后的触摸点坐标,获取滑动的偏移量,并通过偏移量来修改View的坐标,不断重复,实现滑动过程.
layout方法: 
View绘制时,会调用onLayout()方法来设置显示的位置,同样,也可以修改View的left,]]></description><category></category></item><item><title><![CDATA[事件传递机制分析]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53613613</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53613613</guid><author>showdy</author><pubDate>Tue, 13 Dec 2016 21:32:25 +0800</pubDate><description><![CDATA[为什么要有事件传递:
我们知道View是树形结构,当Touch事件(TouchEvent)产生时,可以有多个View去响应,那么为了解决到底哪个View消费这个Touch事件,就出现了事件传递机制.
View结构图如下:
处理事件传递相关方法:
boolean dispatchTouchEvent(MotionEvent ev)
  用来进行事件的分发.如果事件能够传递到当前View,该方法一定会调]]></description><category></category></item><item><title><![CDATA[自定义View之基础篇]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53559870</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53559870</guid><author>showdy</author><pubDate>Sat, 10 Dec 2016 17:30:10 +0800</pubDate><description><![CDATA[Android APP屏幕区域划分:
1.状态栏区域:    //获取屏幕区域的宽高等尺寸获取
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int widthPixels = metrics.widthPix]]></description><category></category></item><item><title><![CDATA[Java之泛型]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53484527</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53484527</guid><author>showdy</author><pubDate>Tue, 06 Dec 2016 11:02:30 +0800</pubDate><description><![CDATA[泛型
什么是泛型 
实现了参数化类型的概念,是代码可以应用于多种类型
可以用在类,接口,方法创建中,分别为泛型类,泛型方法,泛型接口
当创建类型化参数时,编译器会负责转换操作
泛型声明:泛型类:public class Wrapper<T,V>{}
泛型接口:public interface Conusumer<T>{}
泛型方法:public static <T> String parser<T]]></description><category></category></item><item><title><![CDATA[反射(二)之虚拟机中泛型类型信息]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53463570</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53463570</guid><author>showdy</author><pubDate>Mon, 05 Dec 2016 11:24:08 +0800</pubDate><description><![CDATA[泛型信息
public static <T extends Comparable<? super T>> T min(T[] t){}这是一个泛型方法,在虚拟机运行时会泛型擦除为public static Comparable min(Comparable t){},可以使用反射来确定:这个泛型方法有一个T的类型参数
这个类型参数有一个子类限定,其自身又是一个泛型类型
这个限定类型有一个通配符参数]]></description><category></category></item><item><title><![CDATA[Java8之Lambda表达式]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53401144</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53401144</guid><author>showdy</author><pubDate>Tue, 29 Nov 2016 22:22:02 +0800</pubDate><description><![CDATA[学习lambda表达式前先看个例子
输入1000到10000之间水仙花数?
    IntStream.range(1000,10000).filter(v->
            v / 1000 * v / 1000 * v / 1000 + v / 100 * v / 100 * v / 100 + v / 10 * v / 10 * v / 10 == v 
            ).]]></description><category></category></item><item><title><![CDATA[java_集合]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/53141573</link><guid>https://blog.youkuaiyun.com/showdy/article/details/53141573</guid><author>showdy</author><pubDate>Sat, 12 Nov 2016 16:41:02 +0800</pubDate><description><![CDATA[集合中有两种有序集合, 可以采用两种访问元素的方式: 
迭代器访问, 或者整数索引访问(Sequential Access).
随机访问(Random Access)
数组支持的有序集合可以快速访问,可以使用List方法使用索引访问, 而链表实现的有序集合随机访问很慢, 所以用迭代访问.if(list instanceof RandomAccess){
//use random access alg]]></description><category></category></item><item><title><![CDATA[图解HTTP粗略笔记]]></title><link>https://blog.youkuaiyun.com/showdy/article/details/52778986</link><guid>https://blog.youkuaiyun.com/showdy/article/details/52778986</guid><author>showdy</author><pubDate>Mon, 10 Oct 2016 16:30:58 +0800</pubDate><description><![CDATA[一.Web及网络基础
TCP/IP: 是互联网相关的各类协议族的总称,含IP,DNS,DUP,TCP,FTP,HTTP,FDDI等.
TCP/IP协议族按层次分为:应用层,传输层,网络层,数据链路层.应用层: FTP,NDS,HTTP
传输层: TCP,UDP
网络层: 网络层用来处理在网络上流动的数据包.
链路层: 处理连接网络的硬件部分.
二.简单的Http协议客户端: 请求访问文本或者图片等资]]></description><category></category></item></channel></rss>