- 博客(29)
- 收藏
- 关注
原创 RecyclerView与ListView对比浅析(三):绘制
上一篇:RecyclerView与ListView对比浅析(二):View缓存篇点击打开链接(三)绘制篇1. AbsListView(源码版本 4.4)绘制就分三步来分析Measure、Layout和Draw (1)onMeasure里未用到MeasureSpec的高宽,首先设Selector,然后根据SelectionPadding和mPadding算出ListPa
2015-11-29 17:52:34
3468
原创 RecyclerView与ListView对比浅析(二):View缓存篇
上一篇链接:RecyclerView与ListView对比浅析(一):初始化篇(二)View缓存篇1. AbsListView(源码版本4.4)RecyclerBin是AbsListView中专门处理View缓存的类,官方注释中说明其存有两组View——ActiveViews和ScrapViews,前者是当前Layout中正在显示的View,后者是已在屏幕范围外可重用的View,还
2015-11-29 17:39:50
7874
原创 RecyclerView与ListView对比浅析(一):初始化篇
ListView是Android中常用的控件之一,也是信息流中主体展示的重要控件,它在复用性、流畅性及易用性上均有着较好的表现。Google在V7支持包中推出了新控件RecyclerView,它封装了处理convertView缓存的部分,开发者只需要实现View的创建和更新两个部分就可实现列表,另外它还可以用LayoutManager实现不同的布局,比如List和Grid。最近Facebook的首页信息流也使用了这一控件,但从拉View树的结果看,貌似是和ListView切换使用的。
2015-11-29 17:23:50
6560
原创 Drawable加入动画机制(二)
在上篇文章中,我们介绍了一种给Drawable加入动画机制的方法Drawable加入动画机制(一)下面来介绍下我根据这个机制写的三段式动画,效果如下图首先在AnimationScaleState中加入了一个中间Scale参数——mMidScale,如果在调用前设置了中间Scale,则实现三段式动画重写start(),如果Mid不为0,则Repeat三次,把Durat
2015-10-07 23:05:30
1003
原创 Drawable加入动画机制(一)
我们都知道Android有原生的Drawable动画,也就是由一组Drawable组成的帧动画但如果想要给TextView中的Drawable加入动画,用这个方法显然是行不通的我刚开始想用属性动画去做,但设好传进去后还是没有动画效果(如果有用属性动画实现的大神求留言)于是在GitHub上找到了这个例子,它实现了Drawable的自定义Scale动画:点击打开链接在这篇文章里来分析下
2015-10-07 22:52:57
1663
原创 导入Android-Support-V7包“inconsistent”错误解决方法
最近项目中要导入AndroidV7包的RecyclerView来替换ListView但在编译的时候,在RecyclerView.Viewholder上总是报“The hierarchy of the type RecycleAdapter is inconsistent”,并且Proguard也通不过搞了好久都没搞通,最后终于发现了原因:是因为项目中原来有引V4包,V4包太旧了!不
2015-08-17 23:08:48
4153
2
原创 Ant实现Android代码编译混淆(“找不到程序包R”解决方法)
最近在项目里本来是用ProguardGUI实现混淆并生成jar包,想写一个Ant的xml来实现一键生成但在过程中执行javac的时候遇到了“找不到程序包R”的错误,纠结了好久,下面一部分一部分的介绍下初始化部分就不多说了,主要是实现手动clean的部分,看代码:<target name="init" description="Initializing all output dir
2015-08-13 21:00:35
2772
原创 IntelliJ IDEA使用问题汇总(持续更新中)
最近Android开发因项目要求改用IntelliJ,初步了解了下其实就是Android s
2014-07-08 09:29:16
3171
原创 unresolved external symbol解决方法
我在调Json.cpp的时候,在编译时遇到了无法链接Json相关函数的问题,经检查,头文件引用无问题,问题应该出来工程属性的“链接器”中 经比对发现,在命令行(Command Line)中较其他编译正确函数缺少一个“..\..\jsonprj\lib\jsonprj.lib” 于是在命令行中的Additional options中加入了此行,编译正确顺便
2014-03-25 15:10:59
4267
转载 C++的变量类型汇总(持续更新中)
BYTE/ WORD/ DWORD在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:typedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned long DWORD;
2014-02-24 09:50:03
828
转载 【随手记】进程与线程
进程是在其自己的地址空间运行的自含式(Self-Contained)程序,周期性地把CPU从一个任务切换到另一个任务,多任务处理(Multitasking)操作系统在同一时刻可以运行多个进程(程序),使得它们看上去就好像都在独自运行。线程(Thread)是一个进程内的单一连续的控制流。所以一个进程可以有多个并发执行的线程,由于这些线程运行在一个进程内,所以它们分享内存和其他资源。 -- 《C++编
2013-12-16 16:07:06
748
原创 ListView与RadioButton组合——自定义单选列表
Android自带的RadioButton单选框只支持添加文字,我们自己写Adapter实现自定义的RadioButton首先item的XML源码search_user_item.xml (现在只是文字+单选按钮+自定义背景,可以根据需要随意扩展)<LinearLayout xmlns:android="http://schemas.android.com/apk/res/and
2013-09-10 11:13:14
43829
1
原创 GenyMotion使用遇到的问题杂记(更新中)
1. 有时模拟器关闭后,点击Eclipse上的插件显示模拟器仍在On状态,这时只需打开任务管理器,关掉“VirtualBox”相关的进程就可以,再次点击插件时会自动启动的
2013-09-03 10:18:24
3853
转载 Android的触摸(Touch)机制
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包
2013-08-29 15:30:22
840
原创 C++中用Socket实现对结构体、长字符串和图片的传输
首先说明下,本文的Socket传输引用了CBlockingSocket封装类这个类比较特殊的是Send和Receive的最后一个参数是超时时间,其它与C库里的类似首先说结构体吧,这里传输的结构体含有八个整型,如下 typedef struct exceptiontypecount{ int img_num;
2013-06-06 19:18:59
15284
2
转载 C++中char*与string的关系
char *是字符指针string是字符串二者不是任何时候都等价,在C语言中,当字符指针指向的地址保存了一个字符串(即以'\0'字符结尾的一个字符序列)时,可以称之为指向了一个字符串,其它情况下则不等价。C++中,string是一个类,而char *是一个基本数据类型,二者更不等价了。
2013-05-30 10:10:48
1210
原创 undeclared identifier的几种可能
1. 未include相关头文件2. include之后位置不对,程序找不到3. 在导入封装类时,有时需要利用它的命名空间,如使用BlockingSocket封装类,需要在include后加入如下代码才可正常编译 using namespace nsSocket;待续...
2013-05-28 08:36:28
8230
原创 百度地图自定义弹窗(PopupOverlay)Android篇
最近希望用百度地图的PopupOverlay弹出自定义的View弹窗,但百度的API只支持Bitmap的弹窗于是在网上搜索方法时看到了用DrawCache方法把View转成BitMap再显示,但只有ios的实现,我在这篇文章里说下Android的实现源码的模版是百度地图API给出的2.0.0示例代码,下载见点击打开链接主要对其中的自定义覆盖物(ItemizedOverlayDemo)模
2013-03-07 14:56:48
17003
1
转载 关于Adapter中的View.setTag和getTag
View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。 import android.app.Activity; import android
2013-03-07 14:23:51
3769
转载 Android的View加边框
以Textview为例在Drawable里新建XML textview_bar.xml <stroke android:width="1dip" android:color="@android:color/black" /> 然后在定义控件时TextView
2012-12-19 14:11:12
1661
1
原创 Textview动态设置颜色问题
TextView text;text.setTextColor(R.color.red);直接动态设置没用,eclipse也会报错1. 在Activity中,可以用:setTextColor(getResources().getColor(R.color.blue_red));2. 在Adapter等没有getResources的方法中setTextColor(contex
2012-12-18 21:21:47
1612
原创 TimePicker在ScrollView中滑动冲突的解决方法(更新适用于全控件的方法)
自定义新的TimePicker重写如下方法即可:(应该也适用于其他控件) @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { ViewParent p = g
2012-12-15 10:22:52
3310
转载 Android动态设置View的位置和大小
以LinearLayout中的控件ImageView为例LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.linearlayout); ImageView imageView = new ImageView(this); LinearLayout.LayoutParams params = new Li
2012-12-12 09:46:29
32227
1
原创 多个Popupwindow同时弹出时实现分别拖拽功能
Popupwindow一般默认点击弹窗外区域,窗口即消失,这与一条语句有关:popupWindow.setBackgroundDrawable(new BitmapDrawable())将此语句删掉即可取消这个功能然而要实现多个Popupwindow可分别拖拽,还要在建popupwindow时将Focusable设为false具体代码见: private void show
2012-12-06 10:08:27
6116
1
原创 Android低级错误杂记
1. Bundle传值是随Intent传的,转Class传值时,不能putextra以后再new一个Intent转Class2. 若想实现Popwindow的Touch功能,建议对其中View的setOnTouchListener设置,虽然Popwindow自带一个setTouchInterceptor,但不建议用3. popupWindow.setBackgroundDrawable(n
2012-11-28 09:45:25
724
转载 GridView控件重载并应用于课程表制作
首先重写GridView类,禁止其滑动效果和点击效果,以便在课程表中调用代码(转载):package com.oucjwc.ui; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.Gri
2012-10-27 21:45:12
2907
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人