<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[d342784178的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/d342784178</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; d342784178]]></copyright><item><title><![CDATA[安卓开发----listview中图片拉伸问题]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/48765433</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/48765433</guid><author>d342784178</author><pubDate>Sun, 27 Sep 2015 10:57:37 +0800</pubDate><description><![CDATA[在上周工作中 使用了listview
在其item中只放了一个textview(有背景) 发现图片被拉高了 

1.如下是item的布局文件

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tv_time"
        android:lay]]></description><category></category></item><item><title><![CDATA[Listview部分源码分析]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/46374551</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/46374551</guid><author>d342784178</author><pubDate>Fri, 05 Jun 2015 11:24:12 +0800</pubDate><description><![CDATA[Listview部分源码分析

转载自：http://www.cnblogs.com/chiefhsing/archive/2012/12/11/2813753.html



Listview在android开发中算是最常用的几个控件之一，由于要应付各种不同的需求，甚至有时候是奇怪且独特的需要，使用Listview就总会遇到些奇怪的问题，但是其实都没有什么捷径，看源码是最好的办法。而]]></description><category></category></item><item><title><![CDATA[瀑布流]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/46286357</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/46286357</guid><author>d342784178</author><pubDate>Sun, 31 May 2015 10:54:43 +0800</pubDate><description><![CDATA[之前在面试的时候 被问过瀑布流的问题            貌似那个面试官是蘑菇街出来的 

当时压根不知道瀑布流是什么东东 也就说了些自定义控件的思路 

到这几天 想起来 也就去网上找了些瀑布流的demo


关于瀑布流的思路:
继承scroillView
把屏幕划分成n列 每列都是一个垂直的LinearLayout
记录每一列的高度  
记图片为一个单元
当要添加一个]]></description><category></category></item><item><title><![CDATA[关于android 控件的默认属性问题]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/46127391</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/46127391</guid><author>d342784178</author><pubDate>Thu, 28 May 2015 18:53:13 +0800</pubDate><description><![CDATA[每个控件都有很多属性 而对于一些属性会有其默认值  而这些默认值是哪里来的?
我们会想到style或者theme 可往往我们使用TextView或者一些常用的控件的时候并没有声明 style属性 或者theme属性啊


下面以最常用的TextView来进行分析
我们知道 开发中缩写的xml 布局文件 最后都会被解析成为一个对象      

势必会调用构造方法来创建对象
下面我们]]></description><category></category></item><item><title><![CDATA[按键消息派发流程]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45936539</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45936539</guid><author>d342784178</author><pubDate>Sat, 23 May 2015 19:20:03 +0800</pubDate><description><![CDATA[按键消息总体派发过程:
用户按键 ->InputHanlder类的handleKey()方法->ViewRoot类的dispatchKey()方法(发送一个异步消息)
->handleMessage()调用deliverKeyEvent()处理->deliverKeyEventToViewHierarchy()
->根视图(DecorView或者viewgroup)的dispatchKeyE]]></description><category></category></item><item><title><![CDATA[android 窗口介绍]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45915753</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45915753</guid><author>d342784178</author><pubDate>Fri, 22 May 2015 12:34:53 +0800</pubDate><description><![CDATA[dialog是应用类窗口 其子类 大多会改为子窗口
popupwindow是应用类窗口 当其显示时会改为子窗口

contextwindow也是应用类窗口 
optionMenu是应用类窗口




应用类视图的根视图都是DecorView

Menu重要类介绍:
Menu: 一个interface 描述了一个菜单应该具备的操作接口 这里的菜单是指整个菜单 而不是一个条目]]></description><category></category></item><item><title><![CDATA[sql 基本语句]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45845835</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45845835</guid><author>d342784178</author><pubDate>Tue, 19 May 2015 16:00:26 +0800</pubDate><description><![CDATA[创建表
create TABLE table_name (
字段名 数据类型
id int,
name varchar(20)
);
选择表
select * from table ;
插入数据
insert into tables_name (column_name ....) values( values.....);
更新数据
update table_name set]]></description><category></category></item><item><title><![CDATA[android内核剖析-----activity启动流程]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45648703</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45648703</guid><author>d342784178</author><pubDate>Mon, 11 May 2015 20:50:08 +0800</pubDate><description><![CDATA[主要类 :ActivityThread(一个应用的启动入口) ActivityServiceManager(负责所有activity的管理)
每个应用的启动都会产生一条ActivityThread线程     负责维护该应用

当ActivityThread接收到ActivityServiceManager发送而来的启动activity的信息时


调用 scheduleLaunchA]]></description><category></category></item><item><title><![CDATA[android启动过程]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45479095</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45479095</guid><author>d342784178</author><pubDate>Mon, 04 May 2015 12:25:53 +0800</pubDate><description><![CDATA[手机启动过程：
1.linux内核启动：压缩内核启动 内核初始化 启动内核 
2.执行init进程  由init进程启动android系统 
init启动android系统本地服务(Native Service), Zygote进程和其子进程SystemServer  然后启动主页面(Home) 
3.android系统启动完成]]></description><category></category></item><item><title><![CDATA[横竖屏切换的生命周期方法调用]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/45031249</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/45031249</guid><author>d342784178</author><pubDate>Mon, 13 Apr 2015 20:14:35 +0800</pubDate><description><![CDATA[曾经遇到过一个面试题，让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的


1、新建一个Activity，并把各个生命周期打印出来 

2、运行Activity，得到如下信息 

onCreate--> 
onStart--> 
onResume--> 

3、按crtl+f12切换成横屏时 

onSaveInstanc]]></description><category></category></item><item><title><![CDATA[viewdraghelper的使用]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44873801</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44873801</guid><author>d342784178</author><pubDate>Sat, 04 Apr 2015 16:27:46 +0800</pubDate><description><![CDATA[使用viewdraghelper 来处理一些复杂的滑动事件




1.首先 自定义一个viewgroup
这里我们选择继承LinearLayout(可以自行选择)
2.调用ViewDragHelper.create(this, 1f, new DragHelper());来创建一个ViewDragHelper对象 
DragHelper是继承了ViewDragHelper.Cal]]></description><category></category></item><item><title><![CDATA[aidl]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44590589</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44590589</guid><author>d342784178</author><pubDate>Tue, 24 Mar 2015 13:32:58 +0800</pubDate><description><![CDATA[package com.dlj.testservice;    
interface AIDLService {     
    void print();  
} 
1.上面是aidl的格式
2.在提供远程服务的service的onbind方法中 返回实现了AIDLService.Stub的对象public class TestService extends Service {
	IBin]]></description><category></category></item><item><title><![CDATA[Activity的LaunchMode和taskAffinity]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44567531</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44567531</guid><author>d342784178</author><pubDate>Mon, 23 Mar 2015 19:06:34 +0800</pubDate><description><![CDATA[taskAffinity: 指定所在的栈(默认为当前应用包名)



先简要概括一下4中lunchMode:
1.standard 标准模式 每当调用activity都会在栈中创建一个新的对象
2.singleTop 基本上与standard差不多  只有当目标activity正好位于栈顶时 不会创建新的对象 而是重用这个栈顶对象
3.singleTask
当调用设置为single]]></description><category></category></item><item><title><![CDATA[实时更新widget]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44418669</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44418669</guid><author>d342784178</author><pubDate>Wed, 18 Mar 2015 18:56:13 +0800</pubDate><description><![CDATA[widget注意事项:
widget是个特殊的receiver 
它重写了onReceiver方法
当发送广播到widget中时 不会立即响应 
只有当接收到


ACTION_APPWIDGET_UPDATE
ACTION_APPWIDGET_DELETED
ACTION_APPWIDGET_ENABLED
ACTION_APPWIDGET_DISABLED
这4个广播时才]]></description><category></category></item><item><title><![CDATA[service的onStartCommand方法]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44342441</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44342441</guid><author>d342784178</author><pubDate>Tue, 17 Mar 2015 15:27:50 +0800</pubDate><description><![CDATA[当使用 startService()方法启动service时会调用onStartCommand()方法
两次!!!
一次startService方法会调用两次onStartCommand()方法
而且!! 在第一次调用onStartCommand()时 它的intent中数据不全  
所以在onStartCommand() 通过intent.getExtra()方法获得数据 一定要进行判断]]></description><category></category></item><item><title><![CDATA[listview 穿插标签效果]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44304163</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44304163</guid><author>d342784178</author><pubDate>Mon, 16 Mar 2015 13:26:19 +0800</pubDate><description><![CDATA[介绍上图中效果的实现方式









这里定义了两个map集合 用于存放日期的集合 和存放真实索引的集合(这里因为是从数据库取数据 所以存放的游标的索引) 记作map1,map2


当使用adapter去适配数据时
在getView方法中 先拿position去map1中看是否能匹配到数据(当前条目是否要显示标签) 然后在去map2中匹配数据
这里会出现con]]></description><category></category></item><item><title><![CDATA[CursorAdpter的使用]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44280801</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44280801</guid><author>d342784178</author><pubDate>Sun, 15 Mar 2015 21:05:39 +0800</pubDate><description><![CDATA[关于adapter 经常使用的是BaseApapter
而对于要在数据库中获取数据显示出来 我们要用CursorAdpter
class ContactAdapter extends CursorAdapter {
public ContactAdapter(Context context, Cursor c) {
super(context, c);
// TODO Auto-gene]]></description><category></category></item><item><title><![CDATA[一些常用路径]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44258689</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44258689</guid><author>d342784178</author><pubDate>Sat, 14 Mar 2015 13:22:16 +0800</pubDate><description><![CDATA[Environment.getDataDirectory() = /data
 Environment.getDownloadCacheDirectory() = /cache
 Environment.getExternalStorageDirectory() = /mnt/sdcard
 Environment.getRootDirectory() = /system
 context]]></description><category></category></item><item><title><![CDATA[dispatchTouchEvent分发机制]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44247225</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44247225</guid><author>d342784178</author><pubDate>Fri, 13 Mar 2015 22:48:54 +0800</pubDate><description><![CDATA[public boolean dispatchTouchEvent(MotionEvent event) {
        if (mInputEventConsistencyVerifier != null) {
            mInputEventConsistencyVerifier.onTouchEvent(event, 0);
        }]]></description><category></category></item><item><title><![CDATA[BitmapFun的使用]]></title><link>https://blog.youkuaiyun.com/d342784178/article/details/44098249</link><guid>https://blog.youkuaiyun.com/d342784178/article/details/44098249</guid><author>d342784178</author><pubDate>Fri, 06 Mar 2015 12:59:35 +0800</pubDate><description><![CDATA[BitmapFun的使用中必须设置缓存
ImageCacheParams cache = new ImageCacheParams(getActivity(), IMAGE_CACHE_DIR);

imageFetcher.addImageCache(getFragmentManager(), cache);

可以理解 BitmapFun的存在本身就是为了优化图片处理的问题
当然需]]></description><category></category></item></channel></rss>