摘要:mScroller.getCurrX() //获取mScroller当前水平滚动的位置mScroller.getCurrY() //获取mScroller当前竖直滚动的位置mScroller.getFinalX() //获取mScroller最终停止的水平位置mScroller.getFinalY() //获取mScroller最终停止的竖直位置mScroller.setFinalX(int newX) //设置mScroller最终停留的水平位置,没有动画效果,直接跳到目标位置mScroller.setFinalY(int newY) //设置mScroller最终停留的竖直位置,没有动画效
阅读全文
摘要:Adndroid 2.X的设置webview是一个使用方便、功能强大的控件,但由于webview的背景颜色默认是白色,在一些场合下会显得很突兀(比如背景是黑色)。此时就想到了要把webview的背景设置为透明,这样就可以与其背景融为一体。在2.X的平台下,一般设置webview背景为透明的方法如下:mWebView.setBackgroundColor(0);Adndroid 4.0以上背景透明失效但当程序在4.0上使用时,发现居然这种设置方法无法,即使通过上面设置背景为0,照样显示出原来默认的白色背景。通过网上查找,发现原来是由于硬件加速导致的,此时就想到了使用代码关闭当前webview的硬
阅读全文
摘要:just set viewPager's onTouchListener,like this:viewPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { PointF downP = new PointF(); PointF curP = new PointF(); int act = event.getAction(); if(act == MotionEvent.ACTION_DOWN || a...
阅读全文
摘要:该方法的声明为:voidandroid.graphics.Path.arcTo(RectFoval,floatstartAngle,floatsweepAngle);该方法是画一个弧线的路径.第一个参数是一个RectF类型.这个参数是干嘛的呢?先说一下,这个弧线是怎么来的?是先画一个椭圆,然后再在这个椭圆上面截取一部分部形。这个图形自然就是一个弧线了。那么这个椭圆是怎么确定的呢?这就是这个rectF参数所起的作用了。如图所示给出这个矩形后,系统就可以算出这个矩形的中心,然后以这个矩开的中心画一个椭圆。得到这个椭圆后,然后就是截取一部分线了,就得到最终的弧线。这一部分是怎么截取的呢?这就是后面两
阅读全文
摘要:/** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。 * * 1.图形绘制 * setARGB(int a,int r,int g,int b); * 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。 * * setAlpha(int a); ...
阅读全文
摘要:本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfM
阅读全文
摘要:为什么需要在应用程序中增加渠道信息?Android应用的发布需要面对各种各样的市场,我们称之为渠道。有的时候,我们需要知道应用是从哪个渠道下载的。比如,我们可能需要统计哪些市场带来的用户量比较大。再比如,我们可能有一些盈利需要和具体的渠道进行分成。这些都是统计渠道的信息。一般如何在应用中加入渠道信息?为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号,而不直接写在代码中。这样做的好处是,可以针对不同渠道,自动化去修改Manifest文件中的渠道编号,然后自动为该渠道打包。Manifest文件支持Meta Data
阅读全文
摘要:在目前软件开发行业中,流行着这么一句话“天下武功,唯快不破”。而“快”,就不能让我们重复去制造论坛,不能去重新发明轮子。目前开源界中已经有很多 成熟的,得到了大量商用的开源软件和框架,我们就可以借鉴这有优秀的资源,才能在这个节奏速度的社会中博得一丝生存的机会。 我收集整理了一些优秀的android开源框架,希望能对android软件开发的朋友一点的帮助。 Current List Utility - Droid-fu <http://github.com/kaeppler/droid-fu> - android-screenshot-library<http://code.g
阅读全文
摘要:Afinal 是一个android的 orm 和 ioc 框架。而且封装了android中的httpClient,使其更加简单易用。使用finalBitmap,无需考虑bitmap在android中加载 的时候oom的问题和快速滑动的时候图片加载位置错位等问题。 Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。 目前Afinal主要有四大模块: 1、FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。 2、FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI...
阅读全文
摘要:从今天解决的一个问题了解到, viewGroup的dispatchTouchEvent方法会在其onInterceptTouchEvent方法之前被触发.又搜了些资料,个人觉得最受用的总结如下:首先触发ACTIVITY的dispatchTouchEvent然后触发ACTIVITY的onUserInteraction然后触发LAYOUT的dispatchTouchEvent然后触发LAYOUT的onInterceptTouchEvent 供参考的文章蛮多的,我不再废话了:http://blog.csdn.net/iefreer/archive/2009/09/23/4586351.aspxhtt
阅读全文
摘要:项目中需要用到 Monkey 做压力测试,抽空去熟悉了下,各种命令就不废话了,官方文档有。 比如你可以用以下命令开启 Monkey 测试:adb shell monkey -v -v -p com.archermind.callstat --monitor-native-crashes --ignore-security-exceptions --kill-process-after-error --pct-trackball 0 --pct-nav 0 --pct-anyevent 0 --pct-appswitch 0 --pct-flip 0 --pct-majornav 10...
阅读全文
摘要:如果adapter中的数据量很大的时候,在加载listview时会出现卡顿的现象。这是会让用户抓狂!最好的解决办法就是先加载一定数量的数据,然后在最下方提示正在加载! 动态加载就是把放入adapter中的数据分好几次加载。在用户拖动listview时再加载一定的数据,和sina微博的客户端类似。 给listview添加OnScrollListener监听事件默认会覆盖下面两个方法:newOnScrollListener(){booleanisLastRow=false;@OverridepublicvoidonScroll(AbsListViewview,intfirstVisibleItem
阅读全文
摘要:Service 与 Thread 的区别 很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。 1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。 2). Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onStart 这些函数在被系统调用的时候都...
阅读全文
摘要:public void deleteButtonClick(View v) { //TODO Remove favorite - DB + file system Toast.makeText(this, "Deleting bookmark", Toast.LENGTH_SHORT).show(); final int position = getListView().getPositionForView((LinearLayout)v.getParent()); if (position >= 0) { Favorite o = (Favorite) th...
阅读全文
摘要:测试提单子了, 说重复的错误操作导致不停的弹出提示框, 返回之后还是照样弹.! android是这样的机制, 我跟了下Toast的源代码. Toast是用INotificationManager去做的. 修改源码工作量太大,而且我们是基于SDK做的APK, 所以我决定去找下根源. 原因是: 同事每回都用Toast.makeToast. 然而这个方法中每次都会去new 一个Toast对象,这些Toast对象就会放到 INotificationManager的enqueue队列里面去顺序执行. 如果想在按返回键时立即不弹Toast, 那么方法只有一个, 就是定义一个全局的成员变量Toast, ..
阅读全文
摘要:最近做listview和button都要改变Android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。 首先android的selector是在drawable/xxx.xml中配置的。 先看一下listview中的状态: 把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。drawable/list_item_bg.xml Java代码: <?xmlversion="1.0"encoding="
阅读全文
摘要:The solution by dglmtn doesn't work when you have a 9-patch drawable with padding as background. Strange things happen, I don't even want to talk about it, if you have such a problem, you know them. Now, If you want to have a listview with different states and 9-patch drawables (it would wor
阅读全文
摘要:1privateStringshowUninstallAPKSignatures(StringapkPath){2StringPATH_PackageParser="android.content.pm.PackageParser";3try{4//apk包的文件路径5//这是一个Package解释器,是隐藏的6//构造函数的参数只有一个,apk文件的路径7//PackageParserpackageParser=newPackageParser(apkPath);8ClasspkgParserCls=Class.forName(PATH_PackageParser);9C
阅读全文
摘要:今天安装sdk2.2发现没更新到google apis。想下这不就创建不了带地图的SDK了吗。在网上查了看到解决方法 把需要的Google apis 相应的API 都下载来。 http://dl-ssl.google.com/android/repository/google_apis-3-r03.zip http://dl-ssl.google.com/android/repository/google_apis-4_r02.zip http://dl-ssl.google.com/android/repository/google_apis-5_r01.zip http://dl-ssl.
阅读全文
摘要:在不同的分辨率下,Android字体大小怎么自适应分辨率的变化? 假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240,values-480x320。然后在文件夹values ,values-320x240 和 values-480x320 下新建xml文件dimens.xml,该xml文件内容如下:1234<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="btnTextSize"
阅读全文