摘要: 异步任务还可以取消,在Activity或者Fragment销毁等状态后,耗时任务便需要停止。public class DialogTestActivity extends Activity { private Button button1; private Task task; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.button1 = (Button) findVi... 阅读全文
posted @ 2014-02-11 10:00 微笑yy520 阅读(291) 评论(0) 推荐(0)
摘要: 今天测试程序发现程序偶尔会异常崩溃,后来发现可能是有3个Bitmap对象没有回收,占了一部分内存,在手机内存不多的时候程序就崩掉了,后来对Bitmap对象统一进行了isRecycled,这样能加速系统对无用资源的回收,但发现还是有问题:Canvas: trying to use a recycled bitmap android.graphics.Bitmap,最后的解决办法是在isRecycled前对Bitmap进行一个非空和是否isRecycled的判断,问题搞定。注:网友说可以不必回收gc会自动回收,看了一些资料后总结recycle是native方法,不是java代码产生的,回收还是有必 阅读全文
posted @ 2014-01-24 11:49 微笑yy520 阅读(2808) 评论(0) 推荐(0)
摘要: 首先,这是转载过来的,里面对于手势以及事件分发部分写的还比较可以用过微信的都知道,微信对话列表滑动删除效果是很不错的,这个效果我们也可以有。思路其实很简单,弄个ListView,然后里面的每个item做成一个可以滑动的自定义控件即可。由于ListView是上下滑动而item是左右滑动,因此会有滑动冲突,也许你需要了解下android中点击事件的派发流程,请参考Android源码分析-点击事件派发机制。我的解决思路是这样的:重写ListView的onInterceptTouchEvent方法,在move的时候做判断,如果是左右滑动就返回false,否则返回true;重写SlideView(即自定 阅读全文
posted @ 2014-01-17 14:56 微笑yy520 阅读(2152) 评论(1) 推荐(1)
摘要: 官网地址:https://github.com/47deg/android-swipelistview。它可以实现ListView的滑动相关的一些效果,例如类似微信 ListView滑动删除效果等等,自己写了一个Demo Mark 一下。activity_main.xml[html]view plaincopyBookAdapter.java[java]view plaincopypackagecom.exampleswipelistviewtest.adapter;importjava.util.List;importandroid.content.Context;importandroid 阅读全文
posted @ 2014-01-17 14:54 微笑yy520 阅读(1079) 评论(0) 推荐(0)
摘要: StandOut 是一个在Android应用中创建浮动窗口的框架,使用该框架可以方便的创建各种浮动窗口。可以指定窗口大小、放置的位置、是否可以拖动、是否可以最小化、可以在通知栏显示提示等等。项目如图:主要项目StandOut:public abstract class StandOutWindow extends Service //扩展这个类可以轻松地创建和管理的浮动出色的窗口 这是一个后台服务通过Window产生布局视图。public class WindowCache //窗体缓存public class Window extends FrameLayout //浮动窗体视图实例项目.. 阅读全文
posted @ 2014-01-17 14:43 微笑yy520 阅读(655) 评论(0) 推荐(0)
摘要: 项目地址:https://github.com/chrisbanes/PhotoView效果图:代码示范:ImageView mImageView;PhotoViewAttacher mAttacher;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Any implementation of ImageView can be used! mIm... 阅读全文
posted @ 2014-01-17 14:41 微笑yy520 阅读(1447) 评论(0) 推荐(0)
摘要: Android的开源日历控件--TimesSquare:Android用法:1.先导入library包,可去github下载,我的源码包里面也有包含;2.新建项目把library添加到新项目中,编译;3.当你看到\gen目录下有了com.squareup.timessquare这个包时,说明library导入编译成功,这样在新项目中就可以调用到CalenderPickerView了;4.然后就是布局文件的编写,和其他控件一样;[java]view plaincopy5.代码初始化,如果对CalenderPickerView进行初始化会抛出异常;[java]view plaincopyCalen 阅读全文
posted @ 2014-01-17 14:35 微笑yy520 阅读(517) 评论(0) 推荐(0)
摘要: 这里也有比较详细的介绍(注:用法总结的比较强大):http://ajoo.iteye.com/category/119082以前这么用:Java代码Map>>map=newHashMap>>(); 现在这么用(JDK7将实现该功能):Java代码Map>>map=Maps.newHashMap();针对不可变集合:以前这么用:Java代码Listlist=newArrayList();list.add("a");list.add("b");list.add("c");list.add("d 阅读全文
posted @ 2014-01-10 10:33 微笑yy520 阅读(426) 评论(0) 推荐(0)
摘要: 先建立一个crash项目,项目结构如图:在MainActivity.java代码中,代码是这样写的:[java]view plaincopyprint?packagecom.scott.crash;importandroid.app.Activity;importandroid.os.Bundle;publicclassMainActivityextendsActivity{privateStrings;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);System. 阅读全文
posted @ 2014-01-09 17:31 微笑yy520 阅读(173) 评论(0) 推荐(0)
摘要: 一、为什么要Crashcrash可以理解成堕落,垮台。按照我们通俗理解就是android App 因为不可预知的因素导致奔溃。即使我们的程序发布前,经历了很多的测试,但是经过无数用户各种使用情况之后,可能会发生意想不到的crash.为了及时反馈bug,通常我们都需要一个crash机制,以让开发人员尽快了解到问题所在,在下个版本中及时改进。二、如何做到Crashjava的Thread中有一个UncaughtExceptionHandler接口,该接口的作用主要是为了当Thread因未捕获的异常而突然终止时,调用处理程序。接口下面有setDefaultUncaughtExceptionHandle 阅读全文
posted @ 2014-01-09 16:36 微笑yy520 阅读(228) 评论(0) 推荐(0)