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