- 博客(55)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 安卓开发----listview中图片拉伸问题
在上周工作中 使用了listview 在其item中只放了一个textview(有背景) 发现图片被拉高了 1.如下是item的布局文件 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tv_time" android:lay
2015-09-27 10:57:37
692
转载 Listview部分源码分析
Listview部分源码分析 转载自:http://www.cnblogs.com/chiefhsing/archive/2012/12/11/2813753.html Listview在android开发中算是最常用的几个控件之一,由于要应付各种不同的需求,甚至有时候是奇怪且独特的需要,使用Listview就总会遇到些奇怪的问题,但是其实都没有什么捷径,看源码是最好的办法。而
2015-06-05 11:24:12
399
原创 瀑布流
之前在面试的时候 被问过瀑布流的问题 貌似那个面试官是蘑菇街出来的 当时压根不知道瀑布流是什么东东 也就说了些自定义控件的思路 到这几天 想起来 也就去网上找了些瀑布流的demo 关于瀑布流的思路: 继承scroillView 把屏幕划分成n列 每列都是一个垂直的LinearLayout 记录每一列的高度 记图片为一个单元 当要添加一个
2015-05-31 10:54:43
689
原创 关于android 控件的默认属性问题
每个控件都有很多属性 而对于一些属性会有其默认值 而这些默认值是哪里来的? 我们会想到style或者theme 可往往我们使用TextView或者一些常用的控件的时候并没有声明 style属性 或者theme属性啊 下面以最常用的TextView来进行分析 我们知道 开发中缩写的xml 布局文件 最后都会被解析成为一个对象 势必会调用构造方法来创建对象 下面我们
2015-05-28 18:53:13
1682
原创 按键消息派发流程
按键消息总体派发过程: 用户按键 ->InputHanlder类的handleKey()方法->ViewRoot类的dispatchKey()方法(发送一个异步消息) ->handleMessage()调用deliverKeyEvent()处理->deliverKeyEventToViewHierarchy() ->根视图(DecorView或者viewgroup)的dispatchKeyE
2015-05-23 19:20:03
574
原创 android 窗口介绍
dialog是应用类窗口 其子类 大多会改为子窗口 popupwindow是应用类窗口 当其显示时会改为子窗口 contextwindow也是应用类窗口 optionMenu是应用类窗口 应用类视图的根视图都是DecorView Menu重要类介绍: Menu: 一个interface 描述了一个菜单应该具备的操作接口 这里的菜单是指整个菜单 而不是一个条目
2015-05-22 12:34:53
974
原创 sql 基本语句
创建表 create TABLE table_name ( 字段名 数据类型 id int, name varchar(20) ); 选择表 select * from table ; 插入数据 insert into tables_name (column_name ....) values( values.....); 更新数据 update table_name set
2015-05-19 16:00:26
336
原创 android内核剖析-----activity启动流程
主要类 :ActivityThread(一个应用的启动入口) ActivityServiceManager(负责所有activity的管理) 每个应用的启动都会产生一条ActivityThread线程 负责维护该应用 当ActivityThread接收到ActivityServiceManager发送而来的启动activity的信息时 调用 scheduleLaunchA
2015-05-11 20:50:08
548
原创 android启动过程
手机启动过程: 1.linux内核启动:压缩内核启动 内核初始化 启动内核 2.执行init进程 由init进程启动android系统 init启动android系统本地服务(Native Service), Zygote进程和其子进程SystemServer 然后启动主页面(Home) 3.android系统启动完成
2015-05-04 12:25:53
605
转载 横竖屏切换的生命周期方法调用
曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的 1、新建一个Activity,并把各个生命周期打印出来 2、运行Activity,得到如下信息 onCreate--> onStart--> onResume--> 3、按crtl+f12切换成横屏时 onSaveInstanc
2015-04-13 20:14:35
548
原创 viewdraghelper的使用
使用viewdraghelper 来处理一些复杂的滑动事件 1.首先 自定义一个viewgroup 这里我们选择继承LinearLayout(可以自行选择) 2.调用ViewDragHelper.create(this, 1f, new DragHelper());来创建一个ViewDragHelper对象 DragHelper是继承了ViewDragHelper.Cal
2015-04-04 16:27:46
733
原创 aidl
package com.dlj.testservice; interface AIDLService { void print(); } 1.上面是aidl的格式 2.在提供远程服务的service的onbind方法中 返回实现了AIDLService.Stub的对象public class TestService extends Service { IBin
2015-03-24 13:32:58
533
转载 Activity的LaunchMode和taskAffinity
taskAffinity: 指定所在的栈(默认为当前应用包名) 先简要概括一下4中lunchMode: 1.standard 标准模式 每当调用activity都会在栈中创建一个新的对象 2.singleTop 基本上与standard差不多 只有当目标activity正好位于栈顶时 不会创建新的对象 而是重用这个栈顶对象 3.singleTask 当调用设置为single
2015-03-23 19:06:34
378
原创 实时更新widget
widget注意事项: widget是个特殊的receiver 它重写了onReceiver方法 当发送广播到widget中时 不会立即响应 只有当接收到 ACTION_APPWIDGET_UPDATE ACTION_APPWIDGET_DELETED ACTION_APPWIDGET_ENABLED ACTION_APPWIDGET_DISABLED 这4个广播时才
2015-03-18 18:56:13
740
原创 service的onStartCommand方法
当使用 startService()方法启动service时会调用onStartCommand()方法 两次!!! 一次startService方法会调用两次onStartCommand()方法 而且!! 在第一次调用onStartCommand()时 它的intent中数据不全 所以在onStartCommand() 通过intent.getExtra()方法获得数据 一定要进行判断
2015-03-17 15:27:50
454
原创 listview 穿插标签效果
介绍上图中效果的实现方式 这里定义了两个map集合 用于存放日期的集合 和存放真实索引的集合(这里因为是从数据库取数据 所以存放的游标的索引) 记作map1,map2 当使用adapter去适配数据时 在getView方法中 先拿position去map1中看是否能匹配到数据(当前条目是否要显示标签) 然后在去map2中匹配数据 这里会出现con
2015-03-16 13:26:19
508
原创 CursorAdpter的使用
关于adapter 经常使用的是BaseApapter 而对于要在数据库中获取数据显示出来 我们要用CursorAdpter class ContactAdapter extends CursorAdapter { public ContactAdapter(Context context, Cursor c) { super(context, c); // TODO Auto-gene
2015-03-15 21:05:39
611
原创 一些常用路径
Environment.getDataDirectory() = /data Environment.getDownloadCacheDirectory() = /cache Environment.getExternalStorageDirectory() = /mnt/sdcard Environment.getRootDirectory() = /system context
2015-03-14 13:22:16
347
原创 dispatchTouchEvent分发机制
public boolean dispatchTouchEvent(MotionEvent event) { if (mInputEventConsistencyVerifier != null) { mInputEventConsistencyVerifier.onTouchEvent(event, 0); }
2015-03-13 22:48:54
554
原创 BitmapFun的使用
BitmapFun的使用中必须设置缓存 ImageCacheParams cache = new ImageCacheParams(getActivity(), IMAGE_CACHE_DIR); imageFetcher.addImageCache(getFragmentManager(), cache); 可以理解 BitmapFun的存在本身就是为了优化图片处理的问题 当然需
2015-03-06 12:59:35
512
转载 listview显示不全问题
转自---------http://yxwang0615.iteye.com/blog/1739187 1.使用网上用的动态改变listview高度的方法,该方法只适用于item布局是LinearLayout布局的情况,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。所以使用限制较大。
2015-03-05 22:44:35
970
转载 android root权限破解分析
许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/目录下放置一个可执行文件“su” android root权限破解分析 许多机友新购来的Android机器没有破解过Root权限,无法使用一
2015-03-04 13:13:43
703
原创 setcontentview问题
今天在写redBaby的时候时候碰到一个问题 在一个activity中切换多个view 对这个activity 我把初始化的操作放在init( setcontentview(...)....) 中 进行了初始化 而在其他控件的点击事件中又重新调用了init方法想要对重新显示最初的界面 结果出现异常 界面不显示 点击事件异常 分析了一下setcontentview()方法 观察源码的注
2015-03-02 18:44:48
496
转载 DrawerLayout 实现侧边栏
转载--------http://blog.chengyunfeng.com/?p=493 Android官方终于支持 Navigation Drawer(导航抽屉)模式 作者: rain 分类: 移动 发布时间: 2013-05-16 22:52 ė 63条评论 在2013 google IO当天,Android团的更新了Support库,新版本(V13)的Su
2015-03-02 16:40:08
558
转载 apache commons包 简要介绍
apache commons包 的目的在于提供一些可重用的、开源的java代码组件。 常用的有: BeanUtilsCollectionsIOLang 组件大致可以分为以下几类: 组件类别 示例 包 Codec和Modeler 杂项 CLI、Discovery、Lang和Collections 实用程序
2015-02-24 10:30:02
422
原创 inflate第三个参数问题
经常使用inflate(Context context, int resource, ViewGroup root) 来获得所需视图 对于第三个参数 一直不明白什么用 先下结论: // 如果传递null 则showInMiddle.getLayoutParams()=null; // 如果传递为非空 则返回root对应view 而不是想要的view 当param为空时会出现
2015-02-21 13:47:38
473
原创 平移动画
private void flushState() { int distance = 0; if(!isMenuShow){ // scrollTo(0,0); // distance = 0-getScrollX(); distance=menu.getWidth(); }else{ // scrollTo(-menu.getWidth(),0); //
2015-02-18 18:53:32
399
原创 Scroller
1. public void scrollTo(int x, int y)说明:当前视图x轴移动到x,y轴移动到y 2. public void scrollBy(int dx, int dy) 说明:它表示在视图的X、Y方向上各移动dx、dy距离 dx>0表示视图(View或ViewGroup)的内容从右向左滑动;反之,从左向右滑动 dy>0表示视图(View或ViewGroup)的内容从
2015-02-18 18:41:56
313
原创 android的消息处理机制(图文+源码分析)—Looper/Handler/Message
这篇文章写的非常好,深入浅出;android的消息处理机制(图+源码分析)—Looper,Handler,Message是一位大三学生自己剖析的心得,感兴趣的朋友可以了解下哦,希望对你有所帮助 这篇文章写的非常好,深入浅出,关键还是一位大三学生自己剖析的心得。这是我喜欢此文的原因。下面请看正文: 作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google
2015-02-18 13:30:53
351
转载 自定义viewgroup
在继承ViewGroup类时,需要重写两个方法,分别是onMeasure和onLayout。 1,在方法onMeasure中调用setMeasuredDimension方法 这是安卓内部测量view大小的方法 如果不调用 那么必须自己写测量方法 void android.view.View.setMeasuredDimension(int measuredWidth, int meas
2015-02-17 23:25:56
415
转载 Android中获取应用程序(包)的大小-----PackageManager的使用(二)
转载自: http://blog.youkuaiyun.com/qinjuning 通过第一部分Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。 本部分的内容是如何获取安装包得大小,包括
2015-02-14 20:31:48
443
原创 获取进程信息(应用信息)
PackageManager 包管理器 ActivityManager 活动管理器(管理进程) 1.通过ActivityManager得到活动的进程信息 2.根据进程名(包名) 通过PackageManager 得到ApplicationInfo 3.通过ApplicationInfo 得到应用程序的信息 /** * 获取所有的进程信息 * * @param contex
2015-02-13 16:11:20
588
原创 获得某个路径的可用空间
/** * 获取某个路径的可用空间 * * @param path * @return */ private long getAvailSpace(String path) { StatFs statFs = new StatFs(path); // statFs.getBlockCount();//获取分区的个数 long size = statFs.getBlockSize
2015-02-13 15:23:35
442
原创 来电拦截
第一步:在程序中新建一个包,包名必须为:com.android.internal.telephony,因为要使用aidl。 第二步:在这个包里面新建一个名为ITelephony.aidl的文件,然后在文件里面写入代码: package com.android.internal.telephony; interface ITelephony{ boo
2015-02-11 20:45:09
631
原创 是男人就点100下
long[] mHits = new long[3]; //三击事件 public void click(View view){ //src 拷贝的源数组 //srcPos 从源数组的那个位置开始拷贝. //dst 目标数组 //dstPos 从目标数组的那个位子开始写数据 //length 拷贝的元素的个数 System.arraycopy(mHits, 1, m
2015-02-11 13:51:46
458
原创 gps
package com.itheima.gpsdemo; import android.app.Activity; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.Locatio
2015-02-11 13:49:21
371
原创 手机卫士 一键锁屏(获得管理员权限)
首先在清单文件中配置如下 <receiver android:name="com.itheima.lockscreen.MyAdmin" //广播接收者 MyAdmin extends DeviceAdminReceiver 不是BoradCastReceiver android:description="@string/sample_device_
2015-02-11 10:12:07
1106
原创 手机卫士 自定义土司
自定义土司 首先得到一个 窗口管理器 WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); 通过窗口管理器 绑定一个view 和窗口参数params 就能生成一个土司 土司的显示内容就是view的内容 wm.addView(view, params); 示例: view = View.inf
2015-02-11 10:02:53
704
原创 自定义控件,checkbox
checkBox组件 天生有焦点 所以无法通过onclickListener监听 所以可以设置 android:focusable="false" android:clickable="false" 来取消checkbox的功能 通过监听其他组件 来改变checkbox的状态
2015-02-09 18:29:10
440
转载 安卓跑马灯效果
---------------转自http://www.cnblogs.com/Gaojiecai/archive/2013/06/18/3142783.html android:ellipsize实现跑马灯效果总结 最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会。 让我们一步步逐渐向下。
2015-02-09 16:09:57
499
求助listview加载过程 从framework层面讲解一下
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅